Application_Error异常处理

/// <summary>
        ///  捕捉异常
        /// </summary>
        protected void Application_Error()
        {
            // 获得前一个异常的实例
            var ex = Server.GetLastError().GetBaseException();
            {
                var sbError = new StringBuilder();
                sbError.AppendFormat("Url OriginalString:{0}\r\n", Request.Url.OriginalString);
                sbError.AppendFormat("URL PathAndQuery:{0}\r\n", Request.Url.PathAndQuery);
                sbError.AppendFormat("URL.ToString():{0}\r\n", Request.Url.ToString());
                sbError.AppendFormat("URL AbsoluteUri:{0}\r\n", Request.Url.AbsoluteUri);
                var query = (string.IsNullOrEmpty(Request.Url.Query) ? "" : "?" + Request.Url.Query);
                sbError.AppendFormat("Query:{0}\r\n", query);
                sbError.AppendFormat("发生时间:{0}\r\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff"));
                sbError.AppendFormat("异常IP:{0}\r\n", PcHelper.GetInstance.GetIp());
                sbError.AppendFormat("异常电脑名称:{0}\r\n", PcHelper.GetInstance.GetUserHostName());
                sbError.AppendFormat("浏览器:{0}\r\n", PcHelper.GetInstance.GetBrowser());
                var urlRefer = string.Empty;
                if (Request.UrlReferrer != null)
                {
                    urlRefer = Request.UrlReferrer.OriginalString;
                }
                sbError.AppendFormat("URLRefer OriginalString:{0}\r\n", urlRefer);
                sbError.AppendFormat("错误时间:{0}\r\n", DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss ffff"));
                sbError.AppendFormat("错误文件:{0}\r\n", ex.Source);
                sbError.AppendFormat("错误信息:{0}\r\n", ex.Message);
                sbError.AppendFormat("引发错误的方法:{0}\r\n", ex.TargetSite);
                sbError.AppendFormat("错误堆栈:{0}\r\n", ex.StackTrace);

                // 将错误记录到日志中
                FileHelper.GetInstance.WriteToFile(Server.MapPath(CommonConst.ErrorLogPath), sbError.ToString());
            }
        }
时间: 2024-10-11 06:13:10

Application_Error异常处理的相关文章

Global.asax文件说明

Global.asax是我们的底层文件,第一次的IIS请求都会先去执行它里面的文件,所以学会它里面的函数是非常有必要的.而且我们总是忽略这里的知识点,总觉得这是不必须的,其实我们错了,这里才是程序的根本. 文件代码: /// <summary> /// 所有的应用,状态,程序被访问,用户退出,都可以找到., /// </summary> public class Global : System.Web.HttpApplication { /// <summary> //

MVC全局异常处理

众所周知,在asp.net世界中,对于异常的处理就是try catch,当然这个是在方法内部,还有Page_Error 页面级别的错误,application_error 应用程序级别的错误,这几个地方可以用来处理异常信息.一般情况下,我们对于已知的可能出现的错误会直接在try catch中捕获并且处理,但是对于那些我们没有考虑到的异常信息,我们就要采取别的办法了,比如定义一个基类,用来处理子类抛出的异常,然后在可能出现 异常信息的地方继承该类,让父类处理子类中不能确定的并且是抛出的未处理的异常

Asp.Net事务和异常处理:

Asp.Net事务和异常处理:一.什么是事务处理?事务处理是一组组和成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性.如果在事务过程中没有遇到错误,事务中的所有修改都将永久成为数据库中的一部分,如果遇到错误,则不会对数据库进行任何修改.二.事务处理过程.1. 开始一个事务.进入“事务待命”状态.2. 在“事务待命”状态,记录事务中改变的数据库记录.此改变不能直接改变数据库中的值,必须先用一个顺序的“事务日志”记录在一边.同时,对于要改变的原始记录加锁

C#异常处理经验(原则与方法)

本文是异常处理经验性的文章,其实跟C#关系也不大.比较适合刚刚熟悉异常语法,而缺乏实战的读者.当然,经验老练的读者也可指出不足.给予意见.补充说明,一起完善文章,分享更多知识与经验.   1.什么时候该异常处理? 1)代码最外层,如WinFrom,避免用户看到内部异常信息用户体验不好,或者造成程序崩溃,可以用log4net之类的框架记录异常. 2)遇到异常需要恢复状态或者重试的地方.例如连接数据库偶然失败了,可以有个重连机制,在Catch块重新连接数据库. 3)对于一系列有可能失败的任务,其中有

asp.net MVC3 仿照博客园功能 异常处理

这几天感觉我自己比较懒,除了偶尔的写了一点博客以外,对于那个重要的仿照博客园功能的项目我竟然忘记更新了.失误了,天天脑子里的事太多了,有点乱,程序员,伤不起啊. 还是不能不谦虚啊,今天继续项目的开发,不做那些费时的工作了,那个等我星期休息的时候再做,今天来做一个异常处理的功能.     众所周知,在asp.net世界中,对于异常的处理就是try catch,当然这个是在方法内部,还有Page_Error 页面级别的错误, application_error 应用程序级别的错误,这几个地方可以用来

Laravel 5.4 中的异常处理器和HTTP异常处理实例教程

错误和异常是处理程序开发中不可回避的议题,在本地开发中我们往往希望能捕获程序抛出的异常并将其显示打印出来,以便直观的知道程序在哪里出了问题并予以解决,而在线上环境我们不希望将程序错误或异常显示在浏览器中(出于安全考虑),这个时候我们仍然要捕获异常,只不过不是显示到浏览器中,而是记录到日志中,方便日后排查问题. 百牛信息技术bainiu.ltd整理发布于博客园 Laravel当然支持PHP原生的错误和异常处理,但是在此基础上进行了一些封装处理,从而更方便在不同开发环境切换以及对错误和异常的处理.

跟着百度学PHP[11]-PHP当中的异常处理

首先要说一下常见的三种错误: 1.语法错误 2.运行错误 3.逻辑错误 00x1 错误报告及错误级别 PHP的错误分为三个等级 1.注意(notice)   没有变量a 2.警告(warning) 没有给函数传值 3.致命的错误(fatal error) 函数写错 错误的报告级别可以在PHP.ini当中修改.在PHP.ini当中找到错误报告“error_reporting = E_ALL ” 这个的意思是将所有的错误都提示出来.ps:~是除了的意思.&是和的意思.error_reporting

JAVASE02-Unit08: 文本数据IO操作 、 异常处理

Unit08: 文本数据IO操作 . 异常处理 * java.io.ObjectOutputStream * 对象输出流,作用是进行对象序列化 package day08; import java.io.FileOutputStream; import java.io.IOException; import java.io.ObjectOutputStream; import java.util.ArrayList; import java.util.List; /** * java.io.Ob

python3_装饰器_异常处理

装饰器: def auth(func):     def wrapper(name):                     如果函数带参数,要加在这里         user=raw_input("input passwd:").strip()         if user=='test':             print "welcome login"             func(name)              如果函数带参数,要加在这里