Exception
对于异常的处理,以前基本就是跳转到一个自定义的错误页面,觉得这样不错挺友好的。同时还是需要记录下来这些异常,才能进一步的进行修改。
怎么去记录这些错误信息呢?我想比较方便的一种做法是在Application_Error
方法里面将这些错误保存到数据库或是文件里。
之前很少会去写try...catch语句和抛出一个自定义的Exception,这样就导致程序会经常崩溃和出现小黄页。
现在的项目里会有一些自定义的Exception,在前台会去catch这些Exception进行错误处理,程序会"正常"运行。
只有非自定义的错误抛出时才会导致程序崩溃。很显然这样的处理可以让用户觉得更加友好,增加系统健壮性。
Elmah
Elmah可以以插件式的方式加入到项目中来,安装也非常方便。打开 视图>其它窗口>程序包管理控制台
安装:PM> Install-Package Elmah
输入上面的命令安装成功之后,在程序里随便抛出一个异常,就可以通过地址 http://localhost:XXXX/elmah.axd 来查看错误信息。
默认会将错误信息保存到内存中。通过下面的命令来选择你想保存的地方。
Install-Package Elmah.xml 会将日志以文件的形式保存到网站根目录下的App_Data文件夹下。
Install-Package Elmah.sqlserver 将日志保存到sql数据库中,需要运行packageselmah.sqlserver.1.2contentApp_Readme目录下的sql脚本
查看错误的详细信息:
添加错误日志:
try { int i = 1; int j = 0; int k = i / j; } catch (Exception ex) { Elmah.Error error=new Error(ex,Context); Elmah.SqlErrorLog.GetDefault(Context).Log(error); }