您的位置:首页 > 编程语言 > ASP

ASP.NET中异常处理

2015-09-16 09:37 585 查看
Page_Error事件 > ErrorPage属性 > Application_Error事件 > <customErrors>配置项

第一种:页面级

public void Page_Error(object sernder, EventArgs e)
{
//这里就是 我们的页面级别的遗产处理程序的呀;
string errorMsg = String.Empty;

Exception currentError = Server.GetLastError();
errorMsg += "系统发生错误:<br/>";
errorMsg += "错误发生的地址:" + Request.Url + "<br/>";
errorMsg += "错误信息:"+currentError.Message;
Response.write(errorMsg);

Server.ClearError(); //清除异常否则会引发全局的 application_Error 事件

}


第二种 应用程序级

public void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
Exception innerEx = ex.InnerException;
string erroMsg = string.Empty;
string particular = string.Empty;

if (innerEx != null)
{
erroMsg = innerEx.Message;
particular = innerEx.StackTrace;//获取堆栈上的直接字符串表达式
}
else
{
erroMsg = ex.Message;
particular = ex.StackTrace;
//异常额
}

}


第三种:配置文件级

模式 on off remoteonly

On:开启自定义错误处理。

Off:关闭自定义错误处理,当发生异常时,就会看到ASP.NET的黄页信息。

RemoteOnly:如果在服务器上运行程序(http://localhost),当发生异常时,不会看到自定义异常信息,如果通过其他机器访问该程序,会看到自定义异常信息。该选项常用于开发人员调试程序,如果出现异常,开发人员可以通过本地访问来查看异常详细信息,而远程访问的用户看到的是自定义的异常。

defaultRedirect 出错的时候默认重定向的url

<system.web>
<customErrors mode="on" defaultRedirect="ErrorPage.html">
<error statuCode="403" redirect="NoAccess.html"/>
<error statuCode="404" redirect="FileNoFound.html"/>
</customErrors>
<system.web>


第四种:

//最普通异常处理
//这种事局部的异常捕获
try
{

}
catch (DivideByZeroException de)
{

}
catch (ArithmeticException ae)
{

}
catch (Exception e)
{
//捕获 并处理异常;当出现多个异常并且异常之间有继承关系;
//捕获的顺序 子类在前,基类在后;

}
finally
{
//无论什么情况下,即使catch 中有return 下,都会执行该代码块的;
//另外需要说明的是;finally 块中 使用break continue return 退出都是非法的;

}


mvc中配置文件的注意项
http://blog.csdn.net/xxj_jing/article/details/8444640
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: