查找c#异常处理程序
我正在写一些相当复杂的C代码。我发现我的代码抛出了一个异常(在输出窗口中有记录),但调试器并没有进入。在用户未处理的CLR异常上,我确实有要中断的异常集 由于调试器没有中断,我假设调用堆栈中的某个地方一定有try{} 问题是,我找不到它查找c#异常处理程序,c#,exception,C#,Exception,我正在写一些相当复杂的C代码。我发现我的代码抛出了一个异常(在输出窗口中有记录),但调试器并没有进入。在用户未处理的CLR异常上,我确实有要中断的异常集 由于调试器没有中断,我假设调用堆栈中的某个地方一定有try{} 问题是,我找不到它 如何找到引发异常的这行代码的异常处理程序?检查跟踪,以便查看引发异常的位置。在Visual Studio中打开“异常”窗口。展开相应的树以查找正在抛出的异常,并选中“抛出”复选框。下次在调试模式下抛出异常时(反之亦然),调试器将立即中断。将异常设置为在抛出调试时
如何找到引发异常的这行代码的异常处理程序?检查跟踪,以便查看引发异常的位置。在Visual Studio中打开“异常”窗口。展开相应的树以查找正在抛出的异常,并选中“抛出”复选框。下次在调试模式下抛出异常时(反之亦然),调试器将立即中断。将异常设置为在抛出调试时中断->将异常设置为“异常”对话框,然后选中“公共语言运行时异常”复选框 这将在抛出任何异常后立即停止
您可能会发现,作为“正常”代码执行的一部分,抛出了数量惊人的异常(如套接字异常或UI数据绑定时的解析异常),在这种情况下,请关闭“抛出时中断”复选框,并在出现问题的代码附近放置断点。调试到断点,然后切换“断开-抛出”并继续调试。您可以尝试捕获应用程序级别的异常。只需在主方法中添加以下代码:
Application.ThreadException += new System.Threading.ThreadExceptionEventHandler(Application_ThreadException);
并按以下方法处理所有期望:
static void Application_ThreadException(object sender, System.Threading.ThreadExceptionEventArgs e)
{
//Log Excpetion or place breakpoint
}
如果在处理程序中放置断点,您将能够看到异常的StackTrace
希望这能有所帮助。代码中哪里发生了异常?是Windows窗体代码吗?WPF?控制台?很可能没用。他的应用程序没有崩溃,这是很好的。