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

违例匹配[Java编程]

赞助商链接



  本文“违例匹配[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
“掷”出一个违例后,违例掌握系统会按当初编写的次序搜索“最接近”的掌握器.一旦找到符合的掌握器,就认为违例已得到掌握,不再举行更多的搜索工作.
在违例和它的掌握器之间,并不需求非常切确的匹配.一个衍生类对象可与底子类的一个掌握器相配,以下例所示:
//: Human.java
// Catching Exception Hierarchies

class Annoyance extends Exception {}
class Sneeze extends Annoyance {}

public class Human {
  public static void main(String[] args) {
    try {
      throw new Sneeze();
    } catch(Sneeze s) {
      System.out.println("Caught Sneeze");
    } catch(Annoyance a) {
      System.out.println("Caught Annoyance");
    }
  }
} ///:~

Sneeze违例会被符合的第一个catch从句捕捉.当然,这只是第一个.但是,假定我们删除第一个catch从句:
    try {
      throw new Sneeze();
    } catch(Annoyance a) {
      System.out.println("Caught Annoyance");
    }

那么剩下的catch从句仍然可以工作,因为它捕捉的是Sneeze的底子类.换言之,catch(Annoyance e)能捕捉一个Annoyance以及从它衍生的任何类.这一点非常重要,因为一旦我们决意为一个办法增添更多的违例,并且它们都是从相同的底子类担当的,那么客户程序员的代码就不需求更改.至少可以假定它们捕捉的是底子类.
若将底子类捕捉从句置于第一位,试图“屏蔽”衍生类违例,就象下面这样:
    try {
      throw new Sneeze();
    } catch(Annoyance a) {
      System.out.println("Caught Annoyance");
    } catch(Sneeze s) {
      System.out.println("Caught Sneeze");
    }

则编译器会产生一条出错消息,因为它发现永久不大概到达Sneeze捕捉从句.
  以上是“违例匹配[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • 违例匹配
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

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

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