调试时如何正确忽略异常?

时间:2019-01-30 05:31:16

标签: c# debugging exception-handling visual-studio-2017

我将我的Visual Studio异常设置设置为在引发“公共语言运行时异常”时中断。

我有许多例程可以捕获异常,处理异常并继续。在调试程序时,我相信这些异常已得到正确处理,并且不希望调试器在这些异常上停止。

如何防止调试器停止处理异常? (注意,我想打破所有其他CLR例外)

我认为DebuggerStepThrough可以解决问题。但是事实并非如此。以下代码停止在“ Method1();”上

using System;

namespace ConsoleApp8
{
    class Program
    {
        static void Main(string[] args)
        {
            Method1();
        }

        [System.Diagnostics.DebuggerStepThrough]
        static void Method1()
        {
            try
            {
                throw new InvalidOperationException();
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex);
            }
        }
    }
}

-编辑- 柯克-我只在特殊情况下抛出异常。我使用Visual Studio Tools for Office。该MS库通常会引发可以处理和忽略的异常。

我想处理另一个库引发的某些异常,但是可以防止VS2017调试器在发生这些错误时停止运行。

要清楚,这些异常通常是COM异常。我不希望调试器忽略所有COM异常。我只希望调试器忽略我捕获和处理的COM异常。

这可能吗?

1 个答案:

答案 0 :(得分:0)

调试器可能在引发异常时中断执行,因此您可以在调用处理程序之前检查异常。在“例外设置”窗口(“调试”>“ Windows”>“例外设置”)中,展开该节点以获取一类例外,例如“公共语言运行时例外”。在那里您可以更改行为。