线程中出现异常
![](https://i-blog.csdnimg.cn/blog_migrate/dfc22a573f42384f6bdddac95555bbc2.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/e372ca7c86b26224db99fd2e133ffc22.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/fe2a087bc460216a903358a974443ba0.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/db9f8542a417bfa1344448ea755febab.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/2b8188a78f33ebfa28ceab6abb7e3040.jpeg)
从上面代码可以看出来处理线程的异常
设置异常的两种方式
1.全局异常,也是静态异常,是个静态方法 , 类.setDefaultUncaughtExceptionHandler()
2.对象一样,针对单个线程设置的异常,对象.set
UncaughtExceptionHandler()
ps:如果手动在线程内try catch了 那么就不会进入以上两种自己设置的异常了
线程组异常
![](https://i-blog.csdnimg.cn/blog_migrate/156206ae3b76bcd144a891d99a647018.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/d0218a012ed29b5f64a0fb922c13816d.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/82f9c23f2c7a99027f9d08a40457eeef.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/3a14ae05f6777d8aa4f28f0536fb23a6.jpeg)
![](https://i-blog.csdnimg.cn/blog_migrate/301d2101b4ac8b0cb09d03183da5f6c3.jpeg)
从上面代码可以看出来处理线程组的异常
继承ThreadGroup 重写 uncaughtException方法