java多线程异常捕获
java多线程中出现了异常,如何捕获。利用UncaughtExceptionHandler这个接口就可以了。
代码如下:
package com.ming.thread.six.threadcreateException;
public class MyThread extends Thread{
public void run(){
String uname=null;
System.out.println(uname.hashCode());
}
}
package com.ming.thread.six.threadcreateException;
import java.lang.Thread.UncaughtExceptionHandler;
public class Run {
public static void main(String[] args) {
MyThread t=new MyThread();
t.setName("mythread");
t.setUncaughtExceptionHandler(new UncaughtExceptionHandler() {//这个就是异常处理的实现,一旦出现异常就执行里面的方法哦
@Override
public void uncaughtException(Thread t, Throwable e) {
System.out.println("c出现了线程异常哦");
}
});
t.start();
}
}
下面这个例子是在一个线程组中实现异常捕捉:
package com.ming.thread.six.threadgroupException;
public class MyThreadGroup extends ThreadGroup {
public MyThreadGroup(String name){
super(name);
}
@Override
public void uncaughtException(Thread t, Throwable e) {
super.uncaughtException(t, e);
this.interrupt();//打断
}
}
package com.ming.thread.six.threadgroupException;
public class MyThread extends Thread{
private String num;
public MyThread(ThreadGroup group,String name,String num){
super(group,name);
this.num=num;
}
public void run(){
int numInt=Integer.parseInt(num);
while(this.isInterrupted()==false){
System.out.println("死循环中:"+Thread.currentThread().getName());
}
}
}
package com.ming.thread.six.threadgroupException;
public class Test {
public static void main(String[] args) {
MyThreadGroup group=new MyThreadGroup("我的线程组哦");
MyThread [] myThreads=new MyThread[10];
for(int i=0;i<myThreads.length;i++){
myThreads[i]=new MyThread(group,"线程"+(i+1),"1");//正常线程
myThreads[i].start();
}
MyThread newThread=new MyThread(group,"报错线程","sa");
newThread.start();
}
}
so,I forget it。。。
java多线程异常捕获的更多相关文章
- java代码异常捕获throws抛出异常
总结:Throwable 是所以异常的父类.error和Exception是继承它的类 Exception: 这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环 ...
- java ThreadPoolExecutor 异常捕获
一,创建一个线程池 其中: public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) 饱和策略执行时的具体逻辑. p ...
- java controller 异常捕获
package com.aiyusheng.framework.exception; import lombok.Data; /** * base异常类 * @author :cza * @date ...
- java 异常捕获小记
java 中异常捕获常用的为: try{ //业务代码 }catch(Exception e){ //异常捕获 }finally{ // 不管有无异常, 最后都会执行到这里 } 在方法体内如果想要把异 ...
- [javaSE] 异常捕获
异常:程序在运行时出现的不正常现象 Throwable |——Error |——Exception 严重级别:Error类和Exception类 异常的处理:try{}catch{}finally{} ...
- 关于java多线程中异常捕获的理解
在java多线程程序中,所有线程都不允许抛出未捕获的checked exception(比如sleep时的InterruptedException),也就是说各个线程需要自己把自己的checked e ...
- JAVA 线程中的异常捕获
在java多线程程序中,所有线程都不允许抛出未捕获的checked exception(比如sleep时的InterruptedException),也就是说各个线程需要自己把自己的checked e ...
- 异常处理器详解 Java多线程异常处理机制 多线程中篇(四)
在Thread中有异常处理器相关的方法 在ThreadGroup中也有相关的异常处理方法 示例 未检查异常 对于未检查异常,将会直接宕掉,主线程则继续运行,程序会继续运行 在主线程中能不能捕获呢? 我 ...
- JAVA并发,线程异常捕获
由于线程的特性,当我们启动了线程是没有办法用try catch捕获异常的,如下例: package com.xt.thinks21_2; import java.util.concurrent.Exe ...
随机推荐
- [转]Passing Managed Structures With Strings To Unmanaged Code Part 3
1. Introduction. 1.1 In part 1 of this series of blogs we studied how to pass a managed structure (w ...
- snmp snmp4j的使用
snmp4j的使用 一.什么是snmp及snmp4j? snmp是 Simple Network Management Protocol (简单网络管理协议)的简写. SNMP4J是一个用Java来实 ...
- [SinGuLaRiTy] 高一下半期测试
[SinGuLaRiTy-1017] Copyright (c) SinGuLaRiTy 2017. All Rights Reserved. 对于所有的题目: Time Limit: 1s | Me ...
- 洛谷P4462 [CQOI2018]异或序列(莫队)
打广告->[这里](https://www.cnblogs.com/bztMinamoto/p/9538115.html) 我蠢了…… 如果$a_{l} xor ...a_{r}=k$,那么只要 ...
- django 学习之DRF (三)
Django学习之DRF-03 视图集 1.视图集介绍 2.视图集基本使⽤ 1.需求 使⽤视图集获取列表数据和单⼀数据 2.实现 class BookInfoV ...
- ReentranLock实现原理
原文链接:https://blog.csdn.net/jeffleo/article/details/56677425 一.ReentranLock 相信我们都使用过ReentranLock,Reen ...
- Oracle练习(2)
有如下三张表: 销售表:SALE_FACT 工号 年月 城市 客户 销售额 C00001 201601 上海 A 1000 C00001 201601 上海 B 5000 C000 ...
- echarts分段(一段一种颜色)显示
<!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <title> ...
- sscanf()分割字符数组
sscanf与scanf类似,都是用于输入的,只是后者以键盘(stdin)为输入源,前者以固定字符串为输入源. 头文件: #include<stdio.h> 或者 #include < ...
- Problem07 处理字符串
题目:输入一行字符,分别统计出其中英文字母.空格.数字和其它字符的个数. 程序分析:利用while 语句,条件为输入的字符不为'\n'. import java.util.*; public clas ...