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

时间:2012-02-01 17:59:06

标签: c# winforms exception unhandled

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

2 个答案:

答案 0 :(得分:0)

我99%肯定你的“真正的”异常导致这确实未得到解决 - 这是调试器首先告诉你的,他一般都是对的。

在此之后继续在VS中运行App时,实际上并不是当你从调试器中执行exe时会发生什么。事实上,调试器首先通知您未处理的异常,然后继续一些待处理的逻辑(这就是为什么你看到ValidationException错误)。但未处理的例外仍然存在。我不确切知道这种行为的细节和原因,但我多次注意到这一点。

您必须在识别出它之后抛出unhandledexception的精确位置捕获精确错误。 也许发布您的代码示例会有所帮助。

答案 1 :(得分:0)

首先,该插件是否在同一个AppDomain中?

其次,听起来好像你的调试器是“在抛出异常时中断”,而不是“当用户未处理异常时中断”。

在VS.NET中,转到Debug - >例外...

展开“公共语言运行时异常”节点,看看是否有任何勾选。

相关问题