关于异常处理的建议

关于异常处理的建议
目的:方便的转换debug模式和发布模式,方便开发人员轻松找到错误原因,方便错误处理方式的更改,方便大家开发代码,减少try里套try的现象.

首先会有一个错误类,来处理错误.类的设计根据需求来定.webconfig里有个节点,来控制debug模式和发布模式.

第二,错误分类
A级 路径找不到,引用错误,服务错误,代码格式错误,这种错误用代码是无法捕获的,统一用Global.asax处理.
B级 直接导致一个页面无法显示的逻辑错误,如数据库连接不通,该错误用page.onError来处理.(关于B级错误一样可以按A级来处理,看需求)
C级 一般逻辑错误,即使错误,也不应该影响页面运行,用try catch处理.

具体要求:
1.写类库的时候
  统一把异常抛出.如果错误提示不够具体,可加补充说明.如
  try
 {
  抛个错误
        }
 catch(Exception ex)
       {
 string info="这里是A.B.C()方法报错,可能是***原因,可以和***联系";
        info=ex.Message+info;
 throw new  Exception(info);
       }
建议:这里的info字符串,可以写在另一个类里,把字符串统一写在一起,有利于扩展.(如代码与错误信息对应),团队操作可参考分布类.

2.在写页面的时候 
  要注意调用的方法哪些是B级错误,哪些是C级错误.
  比如我提交一条数据,其中需要上传一张图片,那么插入数据库错误就是B级,上传图片错误就是C级,上传图片方法就要用try,插入数据
  库的操作就不用try.
  同样,增加点击数的方法要try,显示数据方法不用try.
  页面写不写page.onError由需求决定.(一般不写,除非它要求这个页面这样处理错误,那个页面那样处理错误)
  catch的时候,把ex错误对象交给错误类来处理就行了,必要的时候要格式化下信息.
  总之,工作人员只需要判断下错误类型,把C级错误try起来就行了,其它的方法不用考虑.

3.写用户控件的时候
  一般性用户控件要求不管出什么错,不能影响页面运行,也就是说,如果像首页那样,很多用户控件,不能因为一个用户控件的错误,使整
  个首页看不到,所以大多数用户控件用C级处理方法来解决.(当然不是绝对,主要指小的栏目,要是像导航栏,操作菜单这样的用户控件,错
   了的话,整个页面是看不见的.)
4.调用方法时,必需要确定所传参数的有效性,方法本身不会对参数有效性进行验证。(为了必免出现未将对象实例化错误)

错误类设计原则
  根据webconfig里面的开关,决定是把传进来的参数抛出去,还是处理掉.处理方法看需求来定. 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值