java多线程中的异常处理
来源:互联网 发布:erp软件是什么意思啊 编辑:程序博客网 时间:2024/06/05 14:29
在java多线程程序中,所有线程都不允许抛出未捕获的checked exception,也就是说各个线程需要自己把自己的checked exception处理掉。这一点是通过java.lang.Runnable.run()方法声明(因为此方法声明上没有throw exception部分)进行了约束。但是线程依然有可能抛出unchecked exception,当此类异常跑抛出时,线程就会终结,而对于主线程和其他线程完全不受影响,且完全感知不到某个线程抛出的异常(也是说完全无法catch到这个异常)。JVM的这种设计源自于这样一种理念:“线程是独立执行的代码片断,线程的问题应该由线程自己来解决,而不要委托到外部。”基于这样的设计理念,在Java中,线程方法的异常(无论是checked还是unchecked exception),都应该在线程代码边界之内(run方法内)进行try catch并处理掉.
通过该方法给某个thread设置一个UncaughtExceptionHandler,可以确保在该线程出现异常时能通过回调UncaughtExceptionHandler接口的public void uncaughtException(Thread t, Throwable e) 方法来处理异常,这样的好处或者说目的是可以在线程代码边界之外(Thread的run()方法之外),有一个地方能处理未捕获异常。但是要特别明确的是:虽然是在回调方法中处理异常,但这个回调方法在执行时依然还在抛出异常的这个线程中!另外还要特别说明一点:如果线程是通过线程池创建,线程异常发生时UncaughtExceptionHandler接口不一定会立即回调。
- java多线程中的异常处理
- java多线程中的异常处理
- java多线程中的异常处理
- java 多线程中的异常处理
- java多线程中的异常处理
- java多线程中的异常处理 - 异常处理在多线程中的原则
- java多线程中的异常处理 - 异常处理在多线程中的原则
- java 多线程异常处理
- Java多线程异常处理
- java 多线程 异常处理
- c#中的多线程异常处理
- C#多线程中的异常处理
- Java多线程编程7--线程中的异常处理
- 《java多线程编程核心技术》读书笔记6:线程中的异常处理
- Java 多线程-线程异常处理
- Java中的异常处理
- JAVA中的异常处理
- Java中的异常处理
- hashmap remove有返回值吗 如果有是什么类型的
- java围棋对弈实例
- Android 自定义控件之日历控件
- 最全VR产业链全景图(必收藏)
- lua中table.sort用法问题
- java多线程中的异常处理
- Java经验积累--IO操作、线程操作
- 我的 Android 开发实战经验总结
- Architecting Android…The clean way?
- POJ 2388(排序)
- 值类型和引用类型
- Java基础------知识点整理(七)-----接口
- 使用PHP简单操作Memcached
- css中的多样化文本阴影:text-shadow