找到c#异常处理程序

时间:2010-07-27 11:32:44

标签: c# exception

我正在写一些相当复杂的C#代码。我发现我的代码抛出异常(在“输出”窗口中注明),但调试器没有中断。我确实有异常集来打破用户未处理的CLR异常。

由于调试器没有中断,我假设调用堆栈中某处必须有try {}。

问题是,我找不到它。

如何为抛出异常的这行代码找到异常处理程序?

4 个答案:

答案 0 :(得分:3)

在Visual Studio中打开例外窗口。展开相应的树以查找正在抛出的异常,并选中“Thrown”复选框。下次在调试模式下抛出异常(反未删除)时,调试器将立即中断。

答案 1 :(得分:2)

检查跟踪,以便查看抛出异常的位置。

答案 2 :(得分:2)

将异常设置为break on throw Debug - > “异常”对话框的异常,然后是“公共语言运行时异常”,选中“已抛出”复选框。

一旦抛出任何异常,这将立即停止。

您可能会发现,作为“正常”代码执行的一部分,会抛出大量异常(例如,当您的UI是数据绑定时,套接字异常或Parse异常),在这种情况下,切换 off 'break on throw'复选框,并在违规代码附近放置一个断点。调试断点,然后切换中断并继续调试器。

答案 3 :(得分:0)

您可以尝试捕获应用程序级别的excpetion。只需在代码后添加到Main方法:

Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);

按以下方法处理所有考试:

        static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
    {
        //Log Excpetion or place breakpoint
    }

如果在处理程序中放置断点,您将能够看到StackTrace的异常。

希望这有帮助。