在我们代码的几个地方,我们注意到如果在调试器下运行,它会显示代码中有一个未处理的异常,但是如果在调试器之外运行,它会完全忽略异常,就好像它被捕获一样。我们有一个异常处理程序,它会弹出一个错误提交对话框,该对话框连接到 Application.ThreadException 和 AppDomain.CurrentDomain.UnhandledException 并且这些似乎都没有捕获它们。我们还记录了我们的异常,日志中没有任何内容。
这有哪些可能的原因?
编辑:似乎它不依赖于异常抛出的类型,而是它被抛出的位置。只需添加以下内容即可对此进行测试:
throw new Exception("Test Exception");
它会显示在调试器下,但不会显示在外面,所以在我们的例子中,它不是 ThreadAbortedException 或任何依赖于它的特定类型的异常。