ASP.NET异常处理机制
try
{
//获取并使用资源,可能出现异常
}
catch(DivideByZeroException de)
{
}
catch(ArithmeticException ae)
{
}
catch(Exception e)
{
//捕获并处理异常,当出现多个异常且异常类之间有继承关系(DivideByZeroException==>ArithmeticException==>Exception),
//捕获顺序是子类在前,基类在后
}
finally
{
//无论什么情况(即使在catch块中return)下,都会执行该块的代码(如:关闭文件)
//另外需要说明的是,在finally块中使用任何break、continue、return退出都是非法的。
}
除了以上的try-catch-finally的处理方式外,还有三种方式来捕获异常:
1. 页面级错误处理(通过Page_Error事件)
//在页面上进行处理
protected void Page_Error(object sender, EventArgs e)
{
string errorMsg = String.Empty;
Exception currentError = Server.GetLastError();
errorMsg += "系统发生错误:<br/>";
errorMsg += "错误地址:" + Request.Url + "<br/>";
errorMsg += "错误信息:" + currentError.Message + "<br/>";
Response.Write(errorMsg);
Server.ClearError();//清除异常(否则将引发全局的Application_Error事件)
}
2. 应用程序级(global.asax)错误处理(通过Application_Error事件)
//在应用程序进行处理
protected void Application_Error(object sender, EventArgs e)
{
Exception ex = Server.GetLastError();
Exception iex = ex.InnerException;
string errorMsg = String.Empty;
string particular = String.Empty;
if (iex != null)
{
errorMsg = iex.Message;
particular = iex.StackTrace;
}
else
{
errorMsg = ex.Message;
particular = ex.StackTrace;
}
//AddLog(errorMsg, particular);
Server.ClearError();//处理完及时清理异常
}
3. 应用程序配置(web.config)
//总体配置
<system.web>
<!--mode有三种值:On,Off,RemoteOnly,defaultRedirect出现错误重定向的URL-->
<customErrors mode="On" defaultRedirect="ErrorPage.htm">
<!--statusCode错误状态码,redirect错误重定向的URL-->
<error statusCode="403" redirect="NoAccess.htm"/>
<error statusCode="404" redirect="FileNoFound.htm"/>
</customErrors>
</system.web>
1我们随着调用栈的深入,性能开销也越大,所以异常应该尽早抛出。
2.对输入的数据应该在业务逻辑中严格检查。
3.try{}catch{}不会造成任何的系统开销,造成系统开销的是throw 抛出异常
ASP.NET异常处理机制的更多相关文章
- ASP.NET Core 中间件的使用(三):全局异常处理机制
前言 我们经常听到"秒修复秒上线",觉得很厉害的样子. 其实不然,这只是一个调侃而已,出现问题的方式很多(逻辑漏洞.代码异常.操作方式不正确等). 我们今天来说代码异常问题怎么快速 ...
- ASP.NET(C#)中的try catch异常处理机制
在开发一个Umbraco平台系统的过程中,遇到了问题. 写的代码如下 fileUrl = MediaHelper.GetMediaUrl(Convert.ToInt32(publishedConten ...
- ASP.Net请求处理机制初步探索之旅 - Part 1 前奏
开篇:ASP.Net是一项动态网页开发技术,在历史发展的长河中WebForm曾一时成为了ASP.Net的代名词,而ASP.Net MVC的出现让这项技术更加唤发朝气.但是,不管是ASP.Net Web ...
- ASP.Net请求处理机制初步探索之旅 - Part 2 核心
开篇:上一篇我们了解了一个请求从客户端发出到服务端接收并转到ASP.Net处理入口的过程,这篇我们开始探索ASP.Net的核心处理部分,借助强大的反编译工具,我们会看到几个熟悉又陌生的名词(类):Ht ...
- ASP.Net请求处理机制初步探索之旅 - Part 3 管道
开篇:上一篇我们了解了一个ASP.Net页面请求的核心处理入口,它经历了三个重要的入口,分别是:ISAPIRuntime.ProcessRequest().HttpRuntime.ProcessReq ...
- Java异常处理机制 try-catch-finally 剖析
Java拥有着强大的异常处理机制,最近初步学习了下,感觉内容还是挺多的,特此来将自己的理解写出来与大家分享. 一. 在Java代码code中,由于使用Myeclipse IDE,可以自动提醒用户哪里有 ...
- JAVA 异常处理机制
主要讲述几点: 一.异常的简介 二.异常处理流程 三.运行时异常和非运行时异常 四.throws和throw关键字 一.异常简介 异常处理是在程序运行之中出现的情况,例如除数为零.异常类(Except ...
- 深入理解java异常处理机制
异常指不期而至的各种状况,如:文件找不到.网络连接失败.非法参数等.异常是一个事件,它发生在程序运行期间,干扰了正常的指令流程.Java通 过API中Throwable类的众多子类描述各种不同的 ...
- C++学习笔记27:异常处理机制
一.异常处理机制基础 异常的定义 程序中可以检测的运行不正常的情况 异常处理的基本流程 某段程序代码在执行操作时发生特殊情况,引发一个特定的异常 另一段程序代码捕获该异常并处理它 二.异常的引发 th ...
随机推荐
- 记一次vscode升级后,格式化Vue出现的问题
一.VSCode中使用vetur插件格式化vue文件时,stylus代码会自动加上大括号.冒号和分号 本来就是简写比较方便舒服,结果一个格式化回到十年前 解决方案: vscode 文件 ->首 ...
- js自调用函数的实现方式
我们知道,js中定义自调用函数通常使用下列方式: (function () { alert("函数2"); })(); 事实上,使用括号包裹定义函数体,解析器将会以函数表达式的方式 ...
- HDFS Basic Operation
1.如何启动一个命令行的hadoop客户端 任何一个Hadoop集群中的节点,只要有hadoop安装包,就可以通过# hadoop fs来启动 2.Hadoop基本命令格式 # hadoop fs ...
- Java基础总结--流程控制
Java流程控制* 顺序结构--最常见的执行情况,语句按照出现的先后次序依次执行.* 判断结构--对条件进行判断,执行相应的语句.有三种常见的形式< if(判断条件){语句;}--为真执行语句, ...
- x86-64栈帧中的“红色区域” red zone of stack frame on x86-64
前几天看System V AMD64 ABI标准的时候发现栈帧的顶部后面有一块"red zone",在学cs:app3e/深入理解操作系统的时候并没有遇到这个,总结一下. 引用标准 ...
- Ionic3 编程-应用启动进入引导页
新建引导页面 ionic g page welcome 导入组件 修改模版文件:welcome.html 修改样式文件:welcome.scss 安装相关插件: 数据库使用SQLite:ionic c ...
- linux学习(一)认识、安装Linux
一.什么是Linux linux是一种操作系统,我们用的android和ios就是分别是linux操作系统和类unix操作系统. linux也是我们经常说的服务器.我们看的网站,游戏,app背后都是服 ...
- hihocoder 1015题
代码 #include <iostream> #include <string> #include <typeinfo> #include <vector&g ...
- HDU1005 Number Sequence (奇技淫巧模拟)
A number sequence is defined as follows: f(1) = 1, f(2) = 1, f(n) = (A * f(n - 1) + B * f(n - 2)) mo ...
- A - Wrestling Match HDU - 5971
Nowadays, at least one wrestling match is held every year in our country. There are a lot of people ...