java 之 UncaughtExceptionHandler异常处理机制
1.java 1.5版本出现的 UncaughtExceptionHandler
当线程由于未捕获异常突然终止时调用的处理程序的接口。
当一个线程由于未捕获异常即将终止时,Java虚拟机将使用thread . getuncaughtexceptionhandler()查询线程的uncaughtException处理程序,并调用处理程序的uncaughtException方法,将线程和异常作为参数传递。如果一个线程没有显式地设置它的UncaughtExceptionHandler,那么它的ThreadGroup对象就充当它的UncaughtExceptionHandler。如果ThreadGroup对象没有处理异常的特殊要求,它可以将调用转发给默认的未捕获异常处理程序。
2. 方法


3.异常分类
我们知道java的异常分为
1.非检查异常
非检查异常为 Error 和 RuntimeException 及其子类, javac 在编译时,不会提示和发现这样的
异常,不要求在程序处理这些异常。所以如果愿意,我们可以编写代码处理(使用 try…catch…finally )
这样的异常,也可以不处理。对于这些异常,我们应该修正代码,。如除 0 错误 ArithmeticException ,
错误的强制类型转换错误 ClassCastException ,数组索引越界 ArrayIndexOutOfBoundsException ,
使用了空对象 NullPointerException 等等
2、检查异常
检查异常则是除了 Error 和 RuntimeException 的其它异常。javac强制要求程序员为这样的异常做预备
处理工作(使用 try…catch…finally 或者 throws )。在方法中要么用try-catch语句捕获它并处理,要么用 throws 子句
声明抛出它,否则编译不会通过。如 SQLException , IOException , ClassNotFoundException 等。
4.UncaughtExceptionHandler的使用
很多时候我们写完代码,运行之后老是会报异常。却没发现应该去捕获它。在多线程的情况下,主线程无法捕捉到异常信息。所以我们一般会实现 UncaughtExceptionHandler 做异常处理。
4.1定义一个线程。模拟抛出空指针异常

4.2 自定义一个异常处理

4.3定义一个线程,并且模拟异常

运行main方法,得出结果: 说明我们已经捕获到此线程的异常信息。

作者:litGrey
来源链接:https://blog.csdn.net/luChenH/article/details/93327319
java 之 UncaughtExceptionHandler异常处理机制的更多相关文章
- Java 中的异常处理机制
生活中的异常: 不能够完整而顺利的完成一些工作 根据不同的异常进行相应的处理,而不会就此终端我们的生活 引出: 异常处理: 方式: 1.选择结构(逻辑判断)避免 demo:if逻辑处理异常 im ...
- Java中的异常处理机制的简单原理和应用?
程序运行过程中可能出现各种"非预期"情况,这些非预期情况可能导致程序非正常结束. 为了提高程序的健壮性,Java提供了异常处理机制: try { s1... s2... s3... ...
- 16、java中的异常处理机制
异常:就是程序在运行时出现不正常情况.异常由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式进行描述.并封装成对象. 其实就是java对不正常情况进行描述后的对象体现. 对于问题的划 ...
- Java面向对象编程之异常处理机制
一:Java的异常处理机制的优点: 1:把各种不同情况的异常情况分类,使用JAVA类来表示异常情况,这种类被称为异常类.把各种异常情况表示成异常类,可以充分的发挥类的可扩展性和可重用性. 2:异常流程 ...
- 黑马程序员——JAVA基础之异常处理机制
------- android培训.java培训.期待与您交流! ---------- 异常:就是程序在运行时出现不正常情况. 异常由来:问题也是现实生活中一个具体的事物,也可以通过java的类的形式 ...
- java中的异常处理机制
java异常处理机制 1)在java语言中,通常将可能出现异常的语句放入try{}语句中,将出现错误后需要执行的语句放入到catch{}语句中,将无论是否发生异常都要执行的语句放在finally{}语 ...
- Java基础(四)-异常处理机制及其设计
本篇主要是记录自己所理解的Java异常处理机制(基于jdk1.7)以及怎么去处理和设计异常.还记得当初学习Java异常这块的时候都没怎么注意它的用途,以为就是简单的处理下异常,我避免程序出现这样错误就 ...
- Java基础之异常处理机制
在Java中,异常分为编译时异常和运行时异常. 编译时异常又叫编译时被监测的异常:在程序编译过程中监测到非运行时异常的异常,出现该异常要么向上抛出,要么捕获处理.运行时异常(runtimeExcept ...
- JAVA学习之 异常处理机制
今天就来说说java的异常处理机制,异常处理不是第一接触,尤其是写过非常多c#的代码,基本都会写到异常处理的代码,事实上c#的异常处理与java的异常处理基本都是一样的,仅仅是在一些细节上不是非常一样 ...
- Java中的异常处理机制《》
异常机制已经成为判断一门编程语言是否成熟的标准,异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性. Java异常机制主要依赖于try.catch.finall ...
随机推荐
- 10分钟了解MVVM,实现简易MVVM
MVVM 是 Model-View-ViewModel 缩写,也就是把 MVC 中的 Controller 演变成 ViewModel.Model 层代表数据模型,View 代表 UI 组件,View ...
- CTF之WEB学习路线规划
前言 受大佬Lzer0Kx(公众号:LK安全)启发,打算整一篇关于CTF-web的学习路线的分享.当然也算是给一些刚入门的小白的一些学习方向,不至于不知道学啥.废话少说,开整! 以下的所有内容属于我个 ...
- JZOJ 3992.Christmas
题目大意 给定一个数列,支持区间加一个数和区间取 \(max\),询问单点询问数值和它被更改的次数 思路 模板的吉司机线段树 维护区间最小值和严格次小值以及最小值的个数 针对询问维护区间和以及区间修改 ...
- AHOI,但是初中组,2017-2018
你觉得我这种彩笔像是能去做省选题的样子吗?=w= 合肥人,做初中的屑安徽题,很正常吧.AH 也不知道为啥搞啥市赛啊区赛啊省赛啊就挺离谱的反正摆烂人也不想打┓( ´∀` )┏ 2018 T1 签到题 / ...
- Spring注解篇,学完注解深入了解SpringBoot更容易
由于Spring Boot项目底层也都是Spring,使用Spring Boot就需要对Spring的注解有一定的了解,这次就把Spring的部分注解聊一下.熟悉了Spring的注解使用Spring ...
- CCRD总目录(2007年至今,动态更新中)
中信国健临床通讯总目录 (动态更新.末次更新: 2015-07-06) 年份 目录网址 2010年 1.2010年第01期 (或者浏览有备注的目录: 2010年第01期 ) 2. 2010年第02期 ...
- 3. 贪心思想(todo)
目录 1. 分配饼干 2. 不重叠区间个数 3. 投飞镖刺破气球 5. 买卖股票最大的收益 6. 买卖股票的最大收益 II 9. 修改一个数成为非递减数组 10. 子数组的最大和 11. 分隔字符串使 ...
- fields设计与测试
菲尔兹管理用例 一.向开发找到需求ID 需求设计文档ID 二.在fields的需求列表中,填入ID,创建计划 1.状态:测试接手 2.日期:冒烟日期,测试日期 3.可能遇到的问题: * 搜不到ID ...
- hashMap的底层数据结构
本节用于记录Java HashMap底层数据结构.方法实现原理等,基于JDK 1.8. # 底层数据结构 Java hashMap 是采用哈希表结构的(数组+链表 /jdk8后加入红黑树)实现,结合了 ...
- virtualenvwrapper使用命令
virtualenvwrapper使用命令 创建虚拟环境:mkvirtualenv + test1 查看虚拟环境:lsvirtuslenv 删除虚拟环境:rmvirtualenv + test1 退出 ...