gpt4 book ai didi

c# - Windows 窗体应用程序中未处理的异常

转载 作者:太空宇宙 更新时间:2023-11-03 16:35:58 25 4
gpt4 key购买 nike

我有一个 Windows 窗体应用程序。它使用 Assembly.LoadFile 加载扩展名为 .Plugin.dll 的程序集。这些“插件”之一调用另一个程序集 dll。该 dll 最终抛出 ValidationException 异常。抛出异常的方法在继承自 IDataErrorInfo 的类中。此类是包含在 Linq to SQL 类 (.dbml) 中的类。在“插件”中,我调用 DataContext.SubmitChanges。这被包裹在一个 try/catch block 中。这导致我的业务逻辑在提交到 OnValidate 覆盖中的数据库之前验证数据。我看到的结果是,在抛出 ValidationExeption 之后,调试器在 OnValidate 方法的底部停止,表明发生了未处理的异常。如果我继续运行该应用程序,我的 catch block 就会被执行。这正是我最初想要的,但为什么当它真正被处理时我会得到一个未处理的异常?

最佳答案

我 99% 确定导致此问题的“真实”异常确实未处理 - 这是调试器首先告诉您的,他通常是正确的。

当您之后继续在 VS 中运行该应用程序时,实际上并不会在您从调试器中执行您的 exe 时发生什么。事实上,调试器首先会通知您未处理的异常,然后继续执行一些挂起的逻辑(如果有的话)(这就是您看到 ValidationException 错误的原因)。但是未处理的异常仍然存在。我不完全了解这种行为的细节和原因,但我多次注意到这一点。

您必须在识别未处理的异常抛出的准确位置捕获准确的错误。也许发布您的代码示例会有所帮助。

关于c# - Windows 窗体应用程序中未处理的异常,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9100791/

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