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多线程异常捕获的更多相关文章

  1. java代码异常捕获throws抛出异常

    总结:Throwable 是所以异常的父类.error和Exception是继承它的类 Exception: 这类异常一般是外部错误,例如试图从文件尾后读取数据等,这并不是程序本身的错误,而是在应用环 ...

  2. java ThreadPoolExecutor 异常捕获

    一,创建一个线程池 其中: public void rejectedExecution(Runnable r, ThreadPoolExecutor executor) 饱和策略执行时的具体逻辑. p ...

  3. java controller 异常捕获

    package com.aiyusheng.framework.exception; import lombok.Data; /** * base异常类 * @author :cza * @date ...

  4. java 异常捕获小记

    java 中异常捕获常用的为: try{ //业务代码 }catch(Exception e){ //异常捕获 }finally{ // 不管有无异常, 最后都会执行到这里 } 在方法体内如果想要把异 ...

  5. [javaSE] 异常捕获

    异常:程序在运行时出现的不正常现象 Throwable |——Error |——Exception 严重级别:Error类和Exception类 异常的处理:try{}catch{}finally{} ...

  6. 关于java多线程中异常捕获的理解

    在java多线程程序中,所有线程都不允许抛出未捕获的checked exception(比如sleep时的InterruptedException),也就是说各个线程需要自己把自己的checked e ...

  7. JAVA 线程中的异常捕获

    在java多线程程序中,所有线程都不允许抛出未捕获的checked exception(比如sleep时的InterruptedException),也就是说各个线程需要自己把自己的checked e ...

  8. 异常处理器详解 Java多线程异常处理机制 多线程中篇(四)

    在Thread中有异常处理器相关的方法 在ThreadGroup中也有相关的异常处理方法 示例 未检查异常 对于未检查异常,将会直接宕掉,主线程则继续运行,程序会继续运行 在主线程中能不能捕获呢? 我 ...

  9. JAVA并发,线程异常捕获

    由于线程的特性,当我们启动了线程是没有办法用try catch捕获异常的,如下例: package com.xt.thinks21_2; import java.util.concurrent.Exe ...

随机推荐

  1. C#字符串要点(复习专用)

    一.字符串 通过string定义一个字符串,或者通过String类来创建对象. 通过new String() 创建有一下几种构造函数(从元数据),以此顺序创建string: // // 摘要: // ...

  2. 树形DP--求树上任意两点间距离和

    例题:HDU2376   HDU6446(2018CCPC网络赛) 思路:求任意两点间距离和可以转换为->路径长度乘经过路径次数的和. 求经过次数:设这条边两端的点,被经过的次数分别为A和B,那 ...

  3. 好程序员web前端分享CSS元素类型

    好程序员web前端分享CSS元素类型 目标 1.元素类型分类依据和元素类型分类 2.元素类型的转换 3.inline-block元素类型的应用 4.置换和非置换元素的概念和应用案例 一.元素类型分类依 ...

  4. c++语言的学习笔记代码与笔记注释《面向对象部分》

    #include <iostream> /*这是C++中关于面向对象部分的具体笔记和代码 */ //定义类的语法形式; //类中的成员项目之间相互引用,直接使用成员; //类外引用成员的时 ...

  5. Spark大数据处理 之 RDD粗粒度转换的威力

    在从WordCount看Spark大数据处理的核心机制(2)中我们看到Spark为了支持迭代和交互式数据挖掘,而明确提出了内存中可重用的数据集RDD.RDD的只读特性,再加上粗粒度转换操作形成的Lin ...

  6. luogu3704 [SDOI2017]数字表格(莫比乌斯反演)

    link 设\(f_0=0,f_1=1,f_n=f_{n-1}+f_{n-2}(n\ge 2)\) 求\(\prod_{i=1}^n\prod_{j=1}^mf_{\gcd(i,j)}\),多组询问, ...

  7. Eclipse 创建Maven 项目

    https://www.cnblogs.com/noteless/p/5213075.html

  8. Vue-Router路由Vue-CLI脚手架和模块化开发 之 路由的动态跳转

    在上一篇的博文中,实现的跳转是在页面中进行实现的 利用vue-router实例方法,使用js对路由进行动态跳转: 1.router.push:参数为路由对象,跳转到指定路由,跳转后会产生历史记录: & ...

  9. bootstrap-table 选择行,并且获得选中行的所有数据内容

    html代码如下: <table id="table" data-toggle="table" th:attr="data-url=@{/vie ...

  10. mysql 常用函数。。

    FIND_IN_SET(str,strlist) ,strlist 是 一个 由 逗号 分割的字符串,要注意 strlist 不能有逗号.. 它 等于  where str in (1,2,3***) ...