Application-Level层级异常捕获并定位程序的异常位置

     最近遇到一个需求,在设置503错误页面时,如果程序出错,服务器自动发邮件通知所有程序员,方便程序员及时解决问题。

想到好像global.cs文件里面好像有个erro事件,然后找到了Application_Error事件,代码如下

void Application_Error(object sender, EventArgs e) 
    { 
        // 在出现未处理的错误时运行的代码

        Exception currentException = Server.GetLastError();

        // your handling code goes here ...

        Server.ClearError();
    }

然后想想平时想得到详细的错误信息都是用Exception  ex.StackTrace 这个属性的,这里应该也会有吧,然后通过监视currentException.StackTrace

发现里面虽然有东西,但是好像不是很详细,是错误的概写,想着应该还有更加深层的信息。又通过currentException . 出它的属性,看到一个InnerException,

通过 currentException.InnerException . 出属性,终于又看到了一个超喜欢的StackTrace, 监视currentException.InnerException.StackTrace看到了非常

详细的错误信息,好了,我要的东西得到了,就可以在此处调用发送邮件的方法了,以后每当程序出现503,我们的邮箱会同时出现一个错误信息的邮件,再也不用

担心网站出现问题半天才发现的问题了。

原文地址:https://www.cnblogs.com/shellphen/p/6429850.html