【发布时间】:2021-11-18 16:11:41
【问题描述】:
我有一个奇怪的问题,这可能是正常的,但我希望能得到一些解释。
我正在编写一个 C# Windows Form 程序,每当我的代码遇到异常时,它就会被抛出到主窗体生成代码的行中,这里是:
我的问题是,为什么会这样?上面的异常是在我的代码的另一行中引发的,但它显示在这里。我调试了我的代码,因为我知道异常可能发生在哪里,当我到达可疑行时,Visual Studio 会跳到图片上的行并抛出异常。
这真的很不方便,因为我不知道我的一些异常是在哪里真正抛出的,而且它会减慢错误解决过程。
有人可以解释为什么会这样以及如何“解决”这个问题吗?
【问题讨论】:
-
这就是他们发明堆栈跟踪的原因。发生这种情况也是因为异常未被捕获并且可能在构造函数或构造阶段。为什么在这里给你例外?因为这可能是堆栈中的最后一个调用代码(术语使用松散)
-
您需要提供异常的堆栈跟踪。我认为异常来自
main_form的构造函数 -
如果您选择接受,这就是您的使命。检查堆栈跟踪。 B 在几个地方尝试 catch 并检查那里的异常或记录它或其他东西
-
您可以指示调试器在抛出异常时停止,而不是在使用“异常设置”窗口(调试时按 CTRL+ALT+E)未处理时停止。
标签: c# visual-studio winforms exception