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

时间:2013-11-19 02:43:43

标签: c# .net visual-studio debugging visual-studio-2012

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

放一个通用处理程序对我的情况不利。我想忽略一些例外,让应用程序继续工作。

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

更新:以澄清我的问题:有很多方法调用而不使用try catch,我想知道这些是什么,自动,不检查所有代码行

3 个答案:

答案 0 :(得分:1)

最简单的答案是使用try-catch语句。您将要在try中运行的代码包装起来,并在try下面设置catch。可以在捕获中处理任何异常,并且您可以允许程序继续运行。您的捕获量应从最具体的最后一个订购。

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 for try-catch

上阅读更多内容

答案 1 :(得分:0)

最初的评论会提供一些非常有效的观点,但如果您仍想沿着这条路走下去,可以尝试以下方法。

如果您知道要忽略的异常,我建议您将其添加到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中。

答案 2 :(得分:0)

与Java不同,C#没有checked exceptions(这是好事还是有争议的;我认为是这样)。我看到了一些选项来确定哪些方法会抛出什么:

  1. 希望作者用/// <exception cref="SomeException">Some explanation</exception>对其进行记录,以便它们显示在IntelliSense中。所有框架代码都有完整记录的例外情况。

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

  3. 使用Exception Reflector等实用程序检查可能的例外情况。