BinaryFormatter.Deserialize membungkus ulang beberapa pengecualian dalam SerializationException
Metode BinaryFormatter.Deserialize ini sekarang menulis ulang beberapa objek pengecualian di dalam SerializationException sebelum menyebarluaskan pengecualian kembali ke pemanggil.
Deskripsi perubahan
Sebelumnya, metode ini BinaryFormatter.Deserialize mengizinkan beberapa pengecualian semena-mena, seperti ArgumentNullException, untuk menyebarluaskan tumpukan ke pemanggilnya.
Di .NET 5 dan yang lebih baru, BinaryFormatter.Deserialize metode ini lebih agresif menangkap pengecualian yang terjadi karena operasi deserialisasi yang tidak valid dan membungkusnya dalam SerializationException.
Versi yang diperkenalkan
5.0
Tindakan yang direkomendasikan
Dalam kebanyakan kasus, Anda tidak perlu mengambil tindakan apa pun. Namun, jika situs panggilan Anda bergantung pada pengecualian tertentu yang dilemparkan, Anda dapat membongkar pengecualian dari luar SerializationException, seperti yang ditunjukkan dalam contoh berikut.
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.
}
API yang Terpengaruh
Saran dan Komentar
https://aka.ms/ContentUserFeedback.
Segera hadir: Sepanjang tahun 2024 kami akan menghentikan penggunaan GitHub Issues sebagai mekanisme umpan balik untuk konten dan menggantinya dengan sistem umpan balik baru. Untuk mengetahui informasi selengkapnya, lihat:Kirim dan lihat umpan balik untuk