"wrong line"(C#, Windows Form, VS2017) 抛出异常

Exception is thrown in the "wrong line" (C#, Windows Form, VS2017)

我有一个奇怪的问题,这可能是正常的,但我会很感激一些解释。

我正在编写一个 C# Windows Form 程序,每当我的代码遇到异常时,它就会在主窗体生成的代码行中抛出,这里:

我的问题是,这是为什么?上面的异常是在我的代码的不同行中抛出的,但它显示在这里。我调试了我的代码,因为我知道异常可能发生的位置,当我到达可疑行时,Visual Studio 跳转到图片上的行并抛出异常。

这真的很不方便,因为我无法分辨我的一些异常在哪里确实抛出并且它减慢了错误解决过程.

谁能解释为什么会这样以及如何“解决”这个问题?

这行本身并没有错;你已经调用(或导致调用)一些使用反射的方法,某些东西因未处理的异常而崩溃,然后你的主线程遇到异常并引起你的注意。

当多米诺骨牌效应停止时,主线程正在忙着做 application.run,所以它是该线程的“正确行”,只是它可能不是正在执行崩溃的工作的线程。使用内部异常详细信息找出问题所在或尝试 Klaus 的建议以打开“抛出时中断”。

我猜你一直在后台线程上做一些事情(你有任何后台工作人员吗?他们在他们的 DoWork 中访问数组吗?)然后崩溃了;这是 winforms 应用程序中的一个相当常见的原因