违例差错控制需要注意的地方


重新抛出违例

                     //throw e.fillInStackTrace();
                     //throw new NullPointerException();

使用这两种方式重新抛出违例将会丢失违例的起源信息

RunntimeException代表的是一个编程错误,不需要我们去刻意的控制,程序员应该尽量的避免这样的错误,这样有助于我们进行调试

丢失的违例

public class MainClass {

        /**
        * @param args
        */
        public static void main(String[] args) throws Exception{

              //异常的丢失
             LostException le = new LostException();
              try {
                    le.i();
             } finally{
                    le.n();
             }
             
       }

}

class LostException{
        public void n() throws Exception {
              throw new NormalException();
       }
        public void i() throws Exception {
              throw new ImportantException();
       }
}

class NormalException extends Exception{
        @Override
        public String toString() {
              // TODO Auto-generated method stub
              return "a normal Exception" ;
       }
}

class ImportantException extends Exception{
        @Override
        public String toString() {
              // TODO Auto-generated method stub
              return "a important Exception" ;
       }
}

ImportantException将会捕获不到,会被覆盖

违例限制

当有继承关系时,子类违例变窄了

finally清除

当在构建器抛出违例时,一般不要尝试finally清除

违例匹配准则

从窄到宽,一旦匹配到则不会再进行向下查找控制器进行匹配

catch(FileNotFoundException e){
}
catch(Exception e){
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值