当前位置:七道奇文章资讯编程技术Java编程
日期:2011-03-22 16:17:00  来源:本站整理

缺陷:丧失的违例[Java编程]

赞助商链接



  本文“缺陷:丧失的违例[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
普通情形下,Java的违例实施筹划都显得非常超卓.不幸的是,它仍然存在一个缺陷.固然违例指出程序里存在一个危急,并且毫不该忽视,但一个违例仍有大概简单地“丧失”.在采取finally从句的一种特别配置下,便有大概发生这种情形:
//: LostMessage.java
// How an exception can be lost

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 {
    LostMessage lm = new LostMessage();
    try {
      lm.f();
    } finally {
      lm.dispose();
    }
  }
} ///:~

输出以下:
A trivial exception
        at LostMessage.dispose(LostMessage.java:21)
        at LostMessage.main(LostMessage.java:29)

可以看到,这里不存在VeryImportantException(非常重要的违例)的迹象,它只是简单地被finally从句中的HoHumException替换了.
这是一项相当严重的缺陷,因为它意味着一个违例大概完好丧失.并且就象前例演示的那样,这种丧失显得非常“自然”,很难被人查出蛛丝马迹.而与此相反,C++里假如第二个违例在第一个违例得到掌握前产生,就会被当作一个严重的编程错误处理.大概Java今后的版本会改正这个问题(上述后果是用Java 1.1生成的).
  以上是“缺陷:丧失的违例[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: 与您的QQ/BBS好友分享!
  • 好的评价 如果您觉得此文章好,就请您
      0%(0)
  • 差的评价 如果您觉得此文章差,就请您
      0%(0)

文章评论评论内容只代表网友观点,与本站立场无关!

   评论摘要(共 0 条,得分 0 分,平均 0 分) 查看完整评论
Copyright © 2020-2022 www.xiamiku.com. All Rights Reserved .