zoukankan      html  css  js  c++  java
  • 异常处理规则

    成功的异常处理应该实现如下4个目标:

    使程序代码混乱最小化

    捕获并保留诊断信息

    通知合适的人员

    采用合适的方式结束异常活动

     

    1.不要过度使用异常:

    过度使用异常主要有两个方面:

    1.把异常和普通错误混淆在一起,不再编写任何错误处理代码,而是以简单地抛出异常来代替所有的错误处理。

    2.使用异常处理来代替流程控制。

     

    对于完全已知的错误,应该编写处理这种错误的代码,增加程序的健壮性;对于普通的错误,应该编写处理这种错误的代码,增加程序的健壮性。

    只有对外部的、不能确定和预知的运行时错误才使用异常。

     

    2.不要使用过于庞大的try块:

     

    3.避免使用Catch All语句:

    这种方式有两种不足之处:

    1.所有的异常都采用相同的处理方式,这将导致无法对不同的异常分情况处理,如果要分情况处理,则需要在catch块中使用分支语句进行控制,这是得不偿失的做法。

    2.这种捕获方式可能将程序中的错误、Runtime异常等可能导致程序终止的情况全部捕获到,从而“压制”了异常。

     

    4.不要忽略捕获到的异常:

    通常对异常采取适当措施,比如:

    1.处理异常。对异常进行合适的修复,然后绕过异常发生的地方继续执行;或者用别的数据进行计算,以代替期望的方法返回值;或者提示用户重新操作。。。

    2.重新抛出新异常。把当前运行环境下能做的事情尽量做完,然后进行一场转译,把异常包装成当前层的异常,重新抛出给上层调用者。

    3.在合适的层处理异常。如果当前层不清楚如何处理异常,就不要在当前层使用carch语句来捕获该异常,直接使用throws声明抛出异常,让上层调用者来负责处理该异常。

  • 相关阅读:
    天气预报 Web 服务
    安装IE8在控制面板里面删除之后进不去桌面,提示找不到IESetting.dll 解决办法(解决IE8卸载不了的问题,返回IE7 ,返回IE6),从IE8回到IE7的方法.
    提供股票的Web Sservices 接口
    vc中操作Xml使用CMarkup类
    不要埋怨空降兵了
    图像分割与描述
    [非常感人] 我还能再救一个!
    向汶川地震中死难者致哀
    关于dotNet加密工具
    不注册使用 .NET Reactor
  • 原文地址:https://www.cnblogs.com/yanweiall/p/4367380.html
Copyright © 2011-2022 走看看