日期: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好友分享! |
- ·上一篇文章:<b>违例原则</b>
- ·下一篇文章:<b>StreamTokenizer</b>
- ·中查找“违例匹配”更多相关内容
- ·中查找“违例匹配”更多相关内容
评论内容只代表网友观点,与本站立场无关!
评论摘要(共 0 条,得分 0 分,平均 0 分)
查看完整评论