繁体   English   中英

如何在Visual Studio中检测未处理的异常?

[英]How to detect unhandled exceptions in Visual Studio?

我正在开发一个应用程序,并且在某些部分中存在未处理的异常。 我想在调用方方法中捕获它们并解决它们。

就我的情况而言,聘请总经理是不好的。 我想忽略一些例外情况,让该应用程序继续运行。

Visual Studio中是否有用于此目的的任何工具或插件?

更新:澄清我的问题:没有使用try catch的方法调用很多,我想自动知道这些在哪里,而无需检查所有代码行

最简单的答案是使用try-catch语句。 您将要运行的代码包装在try中,并将catch设置为try以下。 可以在捕获中处理任何异常,并且您可以允许程序继续运行。 您的渔获物应从最具体的到最普通的最后一个进行排序。

try
    {
         ...code to be run
    }
catch(Exception ex)
    {
        \\handle your exceptions here, you can add as many catches as you need.
        Console.WriteLine(ex);
    }

MSDN上了解更多信息, 以进行尝试捕获

最初的评论提出了一些非常有效的观点,但是如果您仍然想走这条路线,可以尝试以下方法。

如果您知道要忽略的异常,建议将这些异常添加到try catch中

        try
        {
               //Run Code here
        }
        catch (ArgumentNullException ane)
        {
             // ignore exception here
        }
        catch (AggregateException ae)
        {
             //ignore exception here
        }
        catch (Exception genericException)
        { 
          // this must be last to catch unhandled exceptions
        }

实际上,在重新阅读您的初始文章之后,我的回答并不完全合适,这意味着您必须修改代码并将方法调用包含在try catch中。

与Java不同,C#没有经过检查的异常 (是否在争论这是否是一件好事;我认为是)。 我看到一些选择来找出哪些方法会抛出什么:

  1. 希望作者使用/// <exception cref="SomeException">Some explanation</exception>它们进行记录,以便它们能出现在IntelliSense中。 所有框架代码都有完整记录的异常。

  2. 自己检查源代码或反编译的IL。

  3. 使用诸如Exception Reflector之类的实用程序来检查可能的异常。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM