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

<b>RuntimeException的分外情形</b>[Java编程]

赞助商链接



  本文“<b>RuntimeException的分外情形</b>[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
本章的第一个例子是:
if(t == null)
throw new NullPointerException();
看起来仿佛在传送进入一个办法的每个句柄中都必须查抄null(因为不知道调用者能否已传送了一个有效的句柄),这无疑是相当可怕的.但幸运的是,我们根本没必要这样做——它属于Java举行的尺度运行期查抄的一部份.若对一个空句柄发出了调用,Java会自动产生一个NullPointerException违例.所以上述代码在任何情形下都是多余的.
这个类别里含有一系列违例范例.它们全部由Java自动生成,毋需我们亲身着手把它们包含到自己的违例标准里.最便利的是,通过将它们置入单独一个名为RuntimeException的底子类下面,它们全部组合到一同.这是一个很好的担当例子:它成立了一系列具有某种共通性的范例,都具有某些共通的特点与行为.此外,我们没必要专门写一个违例标准,指出一个办法大概会“掷”出一个RuntimeException,因为已经假定大概呈现那种情形.由于它们用于指出编程中的错误,所以几近永久没必要专门捕捉一个“运行期违例”——RuntimeException——它在默许情形下会自动得处处理.若必须查抄RuntimeException,我们的代码就会变得相当繁复.在我们自己的包里,可挑选“掷”出一部份RuntimeException.
假如不捕捉这些违例,又会呈现什么情形呢?由于编译器并不强迫违例标准捕捉它们,所以假定不捕捉的话,一个RuntimeException大概过滤掉我们到达main()办法的全部途径.为领会此时发生的事情,请试试下面这个例子:
//: NeverCaught.java
// Ignoring RuntimeExceptions

public class NeverCaught {
  static void f() {
    throw new RuntimeException("From f()");
  }
  static void g() {
    f();
  }
  public static void main(String[] args) {
    g();
  }
} ///:~
大家已经看到,一个RuntimeException(大概从它担当的任何东西)属于一种特别情形,因为编译器不要求为这些范例指定违例标准.
输出以下:

java.lang.RuntimeException: From f()
at NeverCaught.f(NeverCaught.java:9)
at NeverCaught.g(NeverCaught.java:12)
at NeverCaught.main(NeverCaught.java:15)

所以答案就是:假如一个RuntimeException得到到达main()的全部途径,同时不被捕捉,那么当程序退出时,会为那个违例调用printStackTrace().
注意大概能在自己的代码中仅忽视RuntimeException,因为编译器已精确切行了其他全部掌握.因为RuntimeException在此时代表一个编程错误:
(1) 一个我们不能捕捉的错误(比方,由客户程序员接纳传送给自己办法的一个空句柄).
(2) 作为一名程序员,一个应在自己的代码中查抄的错误(如ArrayIndexOutOfBoundException,此时应注意数组的大小).
可以看出,最好的做法是在这种情形下违例,因为它们有助于程序的调试.
别的一个风趣的地方是,我们不可将Java违例划分为单一用处的工具.的确,它们计划用于掌握那些讨厌的运行期错误——由代码掌握范围之外的其他力气产生.但是,它也分外有助于调试某些特别范例的编程错误,那些是编译器侦测不到的.
  以上是“<b>RuntimeException的分外情形</b>[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
  • <b>hosts是什么 hosts文件在什么位置 若何改正hosts</b>
  • <b>在 Windows 8 中手动安装语言包</b>
  • <b>五个常见 PHP数据库问题</b>
  • Windows中Alt键的12个高效快速的利用本领介绍
  • <b>MySQL ORDER BY 的实现解析</b>
  • <b>详解MySQL存储历程参数有三种范例(in、out、inout)</b>
  • <b>Win8系统恢复出来经典的开始菜单的办法</b>
  • <b>Win8系统花屏怎么办 Win8系统花屏的办理办法</b>
  • <b>Windows 7系统下无线网卡安装</b>
  • <b>为什么 Linux不需求碎片整理</b>
  • <b>Windows 8中删除账户的几种办法(图)</b>
  • <b>教你如安在win7下配置路由器</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

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

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