zoukankan      html  css  js  c++  java
  • 错误统一捕捉处理新方式

    /// <summary>
    /// 要执行的方法
    /// </summary>
    public delegate void MethodToDo();
    /// <summary>
    /// 处理错误的方法
    /// </summary>
    /// <param name="e">错误对象</param>
    public delegate void MethodDealException(Exception e);
    /// <summary>
    /// 将方法用try - catch块包围
    /// </summary>
    public class TryCatch
    {
    private event MethodToDo methodToDo;
    private event MethodDealException methodDealException;
    /// <summary>
    /// 将方法用try - catch块包围
    /// </summary>
    /// <param name="methodToDo">要执行的方法</param>
    public TryCatch(MethodToDo methodToDo)
    {
    this.methodToDo += methodToDo;
    Do();
    }
    /// <summary>
    /// 将方法用try - catch块包围
    /// </summary>
    /// <param name="methodToDo">要执行的方法</param>
    /// <param name="methodDealException">处理错误的方法</param>
    public TryCatch(MethodToDo methodToDo, MethodDealException methodDealException)
    {
    this.methodToDo += methodToDo;
    this.methodDealException += methodDealException;
    Do();
    }
    public void Do()
    {
    if (this.methodToDo != null)
    {
    //获得委托列表
    Delegate[] arr = this.methodToDo.GetInvocationList();
    foreach (Delegate d in arr)
    {
    try
    {
    MethodToDo method = (MethodToDo)d;
    //同步执行方法
    method.Invoke();
    }
    catch (Exception ex)
    {
    if (this.methodDealException != null) //执行自定义错误处理方法
    {
    Delegate[] err = this.methodDealException.GetInvocationList();
    foreach (Delegate de in err)
    {
    MethodDealException me = (MethodDealException)de;
    me.Invoke(ex);
    }
    }
    else //执行统一的错误处理方法
    {
    throw ex;
    }
    }
    }
    }
    }
    }

    调用:

    private void cal()  
    {  
         int i = calInt("a");  
    }  
    private int calInt(string p)  
    {  
        return int.Parse(p);  
    }  
    

      

    new TryCatch(cal);

  • 相关阅读:
    tomcat 远程部署项目
    Maven的使用
    FTP服务器的使用
    2017.10-2018.10工作思考
    Java面试题准备(二)
    移植数据库的心得
    重新安装开发环境之安装使用plsql碰到的两个问题
    Redis学习笔记(一)
    开发之没沟通误删客户数据库数据之找数据路
    Java面试准备(一)
  • 原文地址:https://www.cnblogs.com/XuPengLB/p/7382151.html
Copyright © 2011-2022 走看看