首页 > 编程语言 > 详细

Java并发学习之八——在线程中处理不受控制的异常

时间:2014-08-21 17:08:24      阅读:277      评论:0      收藏:0      [点我收藏+]

本文是学习网络上的文章时的总结,感谢大家无私的分享。

1Java里有2种异常:

检查异常:这些异常必须强制捕获她们或在一个方法里的throws子句中。

未检查异常:这些异常不用强制捕获它们。

2、在一个线程对象的run()方法里抛出一个检查异常,我们必须捕获并处理她们。因为run()方法不接受throws子句。当一个非检查异常抛出,默认的的行为是在控制台写下stack trace并退出程序。

package chapter;

public class Main8 {

	/**
	 * <p>
	 * </p>
	 * @author zhangjunshuai
	 * @date 2014-8-21 下午2:14:52
	 * @param args
	 */
	public static void main(String[] args) {

		Task task = new Task();
		Thread thread = new Thread(task);
		thread.setUncaughtExceptionHandler(new ExceptionHandler());
		thread.start();
	}

}

package chapter;

public class Task implements Runnable{
	@Override
	public void run() {

		int numero = Integer.parseInt("TTT");
	}

}

package chapter;

import java.lang.Thread.UncaughtExceptionHandler;

public class ExceptionHandler implements UncaughtExceptionHandler{

	@Override
	public void uncaughtException(Thread t, Throwable e) {

		System.out.printf("An exception has been captured\n");
		System.out.printf("Thread:%s\n",t.getId());
		System.out.printf("Exception:%s :%s\n",e.getClass().getName(),e.getMessage());
		System.out.printf("Stack Traace");
		e.printStackTrace(System.out);
		System.out.printf("Thread status:%s\n",t.getState());
		
	}

}

运行结果:

bubuko.com,布布扣

Java并发学习之八——在线程中处理不受控制的异常,布布扣,bubuko.com

Java并发学习之八——在线程中处理不受控制的异常

原文:http://blog.csdn.net/junshuaizhang/article/details/38732905

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!