gpt4 book ai didi

C# 无法捕获 SerializationException

转载 作者:行者123 更新时间:2023-11-30 12:17:21 25 4
gpt4 key购买 nike

我的程序在加载序列化文件的部分遇到问题。如果文件无法反序列化,我想很好地失败,但由于某种原因,我的程序将中断而不是进入 catch 子句。这是我的代码

using (FileStream fs = new FileStream(openFileDialog1.FileName, FileMode.Open))
{
try
{
BinaryFormatter bf = new BinaryFormatter();
document = (Document)bf.Deserialize(fs);
}
catch (SerializationException se)
{
MessageBox.Show("Error opening this file due to serialization", se.Source);
}
catch (Exception se)
{
MessageBox.Show("Error opening this file due to serialization", se.Source);
}
}

运行它会导致程序在 Deserialize() 行中断。这是它抛出的异常:

Type 'Source' in Assembly 'DocumentDesigner, Version=1.0.0.0, Culture=neutral, PublicKeyToken=null' is not marked as serializable.

我知道如何修复异常,因为我注释掉了几个 [Serializable] 属性来测试它,但我只想知道为什么 try 子句不起作用。

最佳答案

在“调试”菜单中,转到“异常”。您可能检查了用户未处理和抛出的公共(public)语言运行时异常。

这将导致 Visual Studio 调试器在遇到所有异常时中断,即使它们位于 try/catch block 中也是如此。

如果您在调试器遇到断点后按 F10 键继续,您应该会看到它进入您的 catch block 。

关于C# 无法捕获 SerializationException,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3988422/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com