Java编程思想 缺憾 异常丢失

class VeryImportantException extends Exception {
  public String toString() {
    return "A very important exception!";
  }
}


class HoHumException extends Exception {
  public String toString() {
    return "A trivial exception";
  }
}


public class LostMessage {


  void f() throws VeryImportantException {
    throw new VeryImportantException();
  }


  void dispose() throws HoHumException {
    throw new HoHumException();
  }


  public static void main(String[] args) throws Exception {
    try{
        LostMessage lm = new LostMessage();
        try {
            lm.f();
          } finally {
            lm.dispose();
          }
    }
    catch(Exception e){
    System.out.println(e);
    }


  }

} ///:~

这是Java编程思想这本书中的一个示例代码,程序的输出结果是 A trival exception    

VertImportantException 不见了,作者将其描述为一个bug,当然这个是JDK1.5的版本,在1.7版本我试了一下同样的结果,仔细观察这段代码,在嵌套的第二个try语句中没有catch,作者可能理解的是我最后一个catch语句要将程序中没有catch到的语句全catch到,对此我不太苟同,我认为这不是个bug,异常对象产生了,需要catch才能将其捕获。

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值