Sdílet prostřednictvím


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

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.
}

Ovlivněná rozhraní API