.NET Core - 如何捕获StackOverflowException

时间:2016-09-14 17:13:07

标签: exception exception-handling .net-core

完美的StackOverflow问题终于来了......

如何捕获StackOverflow异常!

似乎在.NET Core中StackOverflowException不可用:

enter image description here

如果我运行此代码:

using System;

namespace PlayGround.Core.Console
{
    public class Program
    {
        public static void Main(string[] args)
        {
            try
            {
                DoSomething();
            }
            catch(Exception e)
            {
                System.Console.WriteLine("Bugger");
            }

        }

        private static void DoSomething()
        {
            DoSomething();
        }
    }
}

我明白了:

enter image description here

您可以看到我的异常处理程序未运行。那么如何在.NET Core中捕获此异常呢?

编辑2017年9月15日: 在.NET Core 2.0中,现在有一个StackOverflowException类,但它实际上并没有捕获堆栈溢出异常。

1 个答案:

答案 0 :(得分:0)

从CLR 2.0开始,您无法捕获StackOverflowException。除非你是扔它的人。

https://blogs.msdn.microsoft.com/jaredpar/2008/10/22/when-can-you-catch-a-stackoverflowexception/