C#之系统异常处理机制
来源:互联网 发布:友谦网络招聘 编辑:程序博客网 时间:2024/05/17 21:07
在系统开发过程中,BUG和异常产生是无处不在的,但是需要我们去做的就是不断去发掘异常、修改异常。
这篇文章主要谈谈我在系统中解决异常的几种方法:
1.控制台程序产生的异常;
在大多数的控制台程序中,运用最多的就是
try{ Action(); 捕捉异常}catch(Exption e){ }
但是需要注意的就是在控制台运行中产生的线程和一些特殊异常try捕捉不到,就只有需要使用特定的方法进行捕捉和处理
AppDomain.CurrentDomain.UnhandledException += new UnhandledExceptionEventHandler(CurrentDomain_UnhandledException);
Application.ThreadException += new ThreadExceptionEventHandler(ErrorHandlerForm.Form1_UIThreadException)
2.web产生异常;
现在的web系统,分为webFrom和MVC。
webFrom也可以2种方式捕捉异常,一种采用上述的
try{ Action(); 捕捉异常}catch(Exption e){ }
第二种就是重写全局方法进行捕捉进行处理
public class Global : System.Web.HttpApplication{ //处理 public void Application_Error(object sender, EventArgs e) { }}
MVC处理的方式就是更加多样,不但可以用上述2种进行处理
还可以重写父类控制器方法捕捉异常进行处理
protected virtual void OnException(ExceptionContext filterContext);
还有就是MVC最新的IOC思想,添加一个Filter进行异常捕捉进行处理
public class ExceptionHandleFilter : ExceptionFilterAttribute { /// <summary> /// 系统发生异常时执行 /// </summary> /// <param name="actionExecutedContext"></param> public override void OnException(HttpActionExecutedContext actionExecutedContext) { Action() //处理异常 } }//运用[ExceptionHandleFilter] public class ServiceForAppController : BaseApiController { }
3.接口异常;
接口的处理方式同web处理方式类似,但是需要注意的就是在提供接口的时候最好能够添加一个回调机制,便于反馈解决调用端是否出现调用出现的异常。
4.守护系统如何监控其他系统的异常;
1.这种异常主要运用于守护程序中使用,就是A程序监控B/C程序的运行情况,这种也有2种方式进行处理
第一种方法(推荐)
采用应用程序之间的通信通道进行.B/C生成出异常,就直接交于中间的队列进行处理,然后消费者从队列中取出数据进行后续处理,比如
RabbitMQMSMQ
第二种方法
调用windos系统自带的WIND32接口获取程序运行的句柄指针,判断其运行状态进行后续处理。
上述方法只是个人在工作中运用比较多的一些捕捉机制,然后搭配现在比较成熟的日志组件进行处理,更加方便高效。
Log4NLog
0 0
- C#之系统异常处理机制
- C#之系统异常处理机制
- C#之系统异常处理机制
- C#异常处理机制
- c#异常处理机制
- C# 异常处理机制
- C#异常处理机制
- c# 异常处理机制
- C#异常处理机制初步
- C#异常处理机制初步
- C#异常处理机制初步
- C#的异常处理机制
- C#异常处理机制初步
- C#之异常处理
- C#之异常处理
- C#之异常处理
- java之异常处理机制
- java之异常处理机制
- HTTP的KeepAlive是开启还是关闭?
- PAT算法笔记(三)————数素数
- MemCache及相关扩展的安装(for Windows)(文章名称有更改)
- C#FTP方式文件上传远程服务器
- MVC输出缓存(OutputCache参数详解)
- C#之系统异常处理机制
- 类的六个默认函数及运算符的重载
- 枚举和define有什么区别
- 程序员面试、算法研究、编程艺术、红黑树、数据挖掘5大系列集锦
- POJ-1505&&UVA-714 抄书(贪心+二分)
- spring配置datasource三种方式
- 洛谷p2419[USACO08JAN]牛大赛Cow Contest
- 学习python[2] Python:文件操作技巧(File operation)
- android 表单库SortableTableView使用讲解