获取第一次机会异常的行号

9
我收到了一些异常抛出的消息,但编译器只提示“mscorlib.dll中发生了System.ArgumentOutOfRangeException类型的第一次机会异常”,这对我来说帮助不大,因为那不是我的代码(我相信这是默认库)。我想看到堆栈跟踪或其他东西,以便知道我的代码在哪里出了问题。这是一个非常庞大的代码库(其中许多不是我的),还有很多多线程和其他复杂操作,所以没有一点头绪就想试图逐步检查代码几乎是不可能的。是否有某种设置可以使所有异常都触发断点,这样我就可以在它们发生时看到调用堆栈,而不是只有它们在输出中默默失败并显示完全无用的错误消息?

在调试模式下,当异常被抛出时,您可以查看堆栈。 - SimpleVar
6
如果您正在使用Visual Studio,请尝试使用“调试”菜单下的“异常”选项,并勾选您想要中断的所有异常。 - gcochard
@Darrel,你真的应该接受别人对你的问题给出的答案,即使你自己也找到了答案。这样别人会更愿意帮助你。 - Bob Horn
如果系统允许我,我会这样做 - 因为我是新手,必须等待24小时才能接受自己的答案。有一些问题我认为没有得到充分回答,但似乎没有人关心它们(耶,荒漠徽章!)。至于这个问题,我有时也需要睡觉... - Darrel Hoffman
1个回答

17
您有几个选项。首先,像Greg所说的那样,您可以导致VS在发生任何异常时中断:

输入图像描述

确保勾选了这些选项,然后单击“确定”:

输入图像描述

这将导致Visual Studio在异常发生的任何地方中断。
另一种方法是捕获异常,然后只写出堆栈跟踪,或将异常(使用ToString())写入输出窗口:

输入图像描述

然后检查您的输出窗口:

输入图像描述


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接