Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
查找c#异常处理程序_C#_Exception - Fatal编程技术网

查找c#异常处理程序

查找c#异常处理程序,c#,exception,C#,Exception,我正在写一些相当复杂的C代码。我发现我的代码抛出了一个异常(在输出窗口中有记录),但调试器并没有进入。在用户未处理的CLR异常上,我确实有要中断的异常集 由于调试器没有中断,我假设调用堆栈中的某个地方一定有try{} 问题是,我找不到它 如何找到引发异常的这行代码的异常处理程序?检查跟踪,以便查看引发异常的位置。在Visual Studio中打开“异常”窗口。展开相应的树以查找正在抛出的异常,并选中“抛出”复选框。下次在调试模式下抛出异常时(反之亦然),调试器将立即中断。将异常设置为在抛出调试时

我正在写一些相当复杂的C代码。我发现我的代码抛出了一个异常(在输出窗口中有记录),但调试器并没有进入。在用户未处理的CLR异常上,我确实有要中断的异常集

由于调试器没有中断,我假设调用堆栈中的某个地方一定有try{}

问题是,我找不到它


如何找到引发异常的这行代码的异常处理程序?

检查跟踪,以便查看引发异常的位置。

在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?控制台?很可能没用。他的应用程序没有崩溃,这是很好的。