防止Visual Studio调试在明显的“未处理的异常”上中断

本文关键字:未处理 异常 中断 Studio Visual 调试 防止 | 更新日期: 2023-09-27 18:10:44

请考虑这个简短的控制台应用程序代码。

static void Main(string[] args)
{
    try
    {
        Action a = () =>
        {
            throw new ApplicationException("Oops");
        };
        var ar = a.BeginInvoke(null, null);
        ar.AsyncWaitHandle.WaitOne();
        try
        {
            a.EndInvoke(ar);
            Console.WriteLine("No message");
        }
        catch (Exception e)
        {
            Console.WriteLine(e.Message);
        }
    }
    finally
    {
        Console.ReadKey();
    }
}

当运行时,Visual Studio会在throw上中断,抱怨它未处理。当在调试器外执行时,代码会按照我的期望执行(显示"Oops")。

我如何说服Visual Studio允许代码像在现实世界中那样执行?

防止Visual Studio调试在明显的“未处理的异常”上中断

您可以将DebuggerNonUserCode属性应用到一个方法中,以便对调试器隐藏该方法