BinaryFormatter.Deserialize rewraps some exceptions in SerializationException
Metoda BinaryFormatter.Deserialize nyní znovu zabalí některé objekty výjimky uvnitř před SerializationException rozšířením výjimky zpět do volajícího.
Změna popisu
BinaryFormatter.Deserialize Dříve metoda povolila několik libovolných výjimek, například ArgumentNullException, rozšířit zásobník do svých volajících.
V rozhraní .NET 5 a novější BinaryFormatter.Deserialize metoda agresivněji zachytí výjimky, ke kterým dochází kvůli neplatným operacím SerializationExceptiondeserializace a zabalí je do .
Zavedená verze
5,0
Doporučená akce
Ve většině případů nemusíte nic dělat. Pokud však web volání závisí na konkrétní výjimce, která je vyvolána, můžete rozbalit výjimku od vnějšího SerializationException, jak je znázorněno v následujícím příkladu.
Stream inputStream = GetInputStream();
var formatter = new BinaryFormatter();
try
{
object deserialized = formatter.Deserialize(inputStream);
}
catch (MyException myEx)
{
// Handle 'myEx' here in case it was thrown directly.
}
catch (SerializationException serEx) when (serEx.InnerException is MyException myEx)
{
// Handle 'myEx' here in case it was wrapped in SerializationException.
}