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

顺服Tiger: 线程中的默许非常处理[Java编程]

赞助商链接



  本文“顺服Tiger: 线程中的默许非常处理[Java编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:

固然我们不想成立在无法预期时抛出运行时非常的程序,但这种情形还是会发生——特别是第一次运行复杂程序时.普通是利用默许行为、打印仓库溢出和完毕线程的生命来处理这些非常.

从那边发现默许行为?每个线程都属于一个由 java.lang.ThreadGroup 类表示的线程组.顾名思义,线程组答应您将线程组合在一同.您大概是为了便利而将线程组合,比方,一个线程池中的全部线程都属于组 X,而另一个池的全部线程则属于组 Y,大概是为了拜候掌握而将线程举行组合.组 X 中的线程无权拜候或改变组 Y 中的线程,除非它们都在同一线程组内(或在一个子组内).

在 Tiger 之前,ThreadGroup 类供应了一种处理未捕捉非常的办法:ThreadGroup 的 uncaughtException() 办法.假如非常不是 ThreadDeath ,则将线程的名称和仓库回溯(stack backtrace)发送到 System.err .但是 Tiger 增添了另一种办法:Thread.UncaughtExceptionHandler 接口.细分 ThreadGroup 或安装该新接口的实现都答应您更改默许行为.我们将对 Tiger 之前和之后供应的办法都举行研究.

利用 ThreadGroup 的定制行为

发生未捕捉的非常时,默许行为是将仓库溢出打印输出到系统错误( System.err )中,如清单 1 中所示.不需求利用任何号令参数来启动程序.

清单 1. 线程溢出示例

public class SimpleDump {
  public static void main(String args[]) {
   System.out.println(args[0]);
  }
}

不利用任何参数运行该程序将生成清单 2 中的输出.固然它不是一个很长的仓库跟踪,但它是一个完好的仓库跟踪.

清单 2. 默许线程溢出输出

Exception in thread "main" java.lang.ArrayIndexOutOfBoundsException: 0
     at SimpleDump.main(SimpleDump.java:3)

正如 Java 平台的很多东西一样,假如不喜好默许行为,您可以对其举行更改.在 Java 平台的 Tiger 版从前的版本中,不能替换全部线程的默许行为,但是可以成立一个新的 ThreadGroup ,并更改在该组内成立的任何线程的默许行为.您可以重写 uncaughtException(Thread t, Throwable e) 办法来定制该行为.然后,当发生未意料的运行时非常时,该线程组内成立的任何线程都将得到新的行为.不过,最好是修复底子问题,我将供应一个简单的示例,阐明更改默许行为所必须的步骤.清单 3 展示了将履行代码放入新线程的调整过的测试程序:

清单 3. 调整过的线程溢出示例

public class WindowDump {
  public static void main(String args[]) throws Exception {
   ThreadGroup group = new LoggingThreadGroup("Logger");
   new Thread(group, "myThread") {
    public void run() {
     System.out.println(1 / 0);
    }
   }.start();
  }
}


  以上是“顺服Tiger: 线程中的默许非常处理[Java编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:

  • 顺服Tiger - 调集框架
  • 顺服Tiger: 操作Tiger为窗格减压
  • 顺服Tiger: 并发调集
  • 顺服Tiger: JDK 5.0源代码承诺
  • 顺服Tiger: Tiger预览版现已推出
  • 顺服Tiger: 从XML中装载属性
  • <b>顺服Tiger: 当Ocean和Synth赶上Metal</b>
  • 顺服Tiger: 格局化输出
  • 顺服Tiger: 线程中的默许非常处理
  • <b>顺服Tiger: 虚拟机更新</b>
  • <b>顺服Tiger: 深化研究摆列典范</b>
  • 本文地址: 与您的QQ/BBS好友分享!
    • 好的评价 如果您觉得此文章好,就请您
        0%(0)
    • 差的评价 如果您觉得此文章差,就请您
        0%(0)

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

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