将“受检查异常”转化为“不受检查异常”

为了简化“受检查异常”的处理工作,可以将其包装成为“不受检查异常”,这样就不必捕获它,或者在异常声明中列出。注意,这样抛出的异常就是一个新的封装了原受检查异常的异常了。如果程序员确切知道会发生该异常,则可以对其进行捕获,并利用getCause()获取原“受检查异常”并再对其进行处理。再次捕获进catch块中的时候,编译器强制用Throwable作为“保底”

//IgnoreRuntimeException.java
//Transform a compile-checked exception into a Runtime Exception

package com.msn.spaces.bryantd001;

class CheckedWhenCompliedException extends Exception{
      private String str;

     CheckedWhenCompliedException(){
           super("Compile-checked Exception");
           str = "Compile-checked Exception --> Runtime Exception";
     }

     public void throwRuntimeException(){
           System.out.println("I will be transformed into a Runtime Exception and be rethrown.");
           throw new RuntimeException(this);
     }

     public String toString(){
           return str;
     }
}

public class IgnoreRuntimeException{
      public static void main(String[] args){
            try{
                  CheckedWhenCompliedException e = new CheckedWhenCompliedException();
                  e.throwRuntimeException();
           }catch(RuntimeException re){
                 try{
                       throw re.getCause();
                 }catch(CheckedWhenCompliedException e){
                       System.out.println(e);
                 }catch(Throwable e){   //编译器强制异常基类
                       System.out.println(e);
                 }
           }
      }
}


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值