处理ASP.NET MVC 4中的StackOverflowException

时间:2015-01-08 19:57:51

标签: c# asp.net asp.net-mvc asp.net-mvc-4

在ASP.NET MVC 4 C#中发生StackOverflowException之前,我正在尝试对我的应用程序执行某些操作。我知道当发生StackOverflowException时,应用程序被操作系统杀死(在这种情况下它会杀死IIS)。我的问题是,有没有办法捕获该异常,以便在崩溃之前生成日志?我尝试使用HandleProcesCorruptedStateExceptions但它不起作用。这是一个应该实现的示例代码。

[HandleProcessCorruptedStateExceptions]
[SecurityCritical]
public ActionResult StackOverflow()
{
    try
    {
        Self("test");
        return View();
    }
    catch (System.StackOverflowException ex)
    {
        //log
        Console.WriteLine(ex.ToString());
        // try to do something to prevent application from crashing
        throw;
    }
}

[HandleProcessCorruptedStateExceptions]
[SecurityCritical]
private string Self(string value)
{
    try
    {
        return Self(value);
    }
    catch (System.StackOverflowException ex)
    {
        // log
        Console.WriteLine(ex.ToString());
        // try to do something to prevent application from crashing
        throw;
    }
}

0 个答案:

没有答案