32.自定义Java异常捕获处理类及其使用
2024-10-21 15:40:49
- 自定义异常捕获处理类
/**
* <h1>异常捕捉</h1>
* */
public class ExceptionHandler implements Thread.UncaughtExceptionHandler {
@Override
public void uncaughtException(Thread t, Throwable e) {
StackTraceElement[] ses = e.getStackTrace();
System.err.println("Exception in thread \"" + t.getName() + "\" " + e.toString());
for (StackTraceElement se : ses) {
System.err.println("\tat " + se);
}
Throwable ec = e.getCause();
if (null != ec) {
uncaughtException(t, ec);
}
}
}
- 使用异常捕获处理类
/**
* <h1>想办法打印完整的异常栈信息</h1>
* */
public class CompleteException {
private void imooc1() throws Exception {
throw new Exception("imooc1 has exception...");
}
private void imooc2() throws Exception {
try {
imooc1();
} catch (Exception ex) {
throw new Exception("imooc2 has exception...", ex);
}
}
private void imooc3() {
try {
imooc2();
} catch (Exception ex) {
// Throwable
throw new RuntimeException("imooc3 has exception...", ex);
}
}
public static void main(String[] args) {
// 默认异常处理
// try {
// new CompleteException().imooc3();
// } catch (Exception ex) {
// ex.printStackTrace();
// }
// 使用自定义异常捕获处理类,打印所有异常信息
Thread.setDefaultUncaughtExceptionHandler(new ExceptionHandler());
new CompleteException().imooc3();
}
}
最新文章
- Python字符串的encode与decode研究心得乱码问题解决方法
- 【转】linux 编译安装nginx,配置自启动脚本
- Eclipse 配置Maven
- Redpine的Lite-Fi解决方案获Wi-Fi CERTIFIED认证
- [LeetCode] 74. Search a 2D Matrix 解题思路
- ural 1203. Scientific Conference
- was配置oracle RAC集群的数据源
- JPA 系列教程10-双向一对一关联表
- Linux启动流程详解【转载】
- nmake学习笔记2
- [2017BUAA软工助教]第0次个人作业
- 注意:Tomcat Get请求的坑!
- Jenkins系列之二——centos 6.9 + JenKins 安装
- jQuery图片播放插件prettyPhoto使用介绍
- Python开发【项目】:选课系统-改良版
- 命令:man
- c++ 栈(顺序表)
- VS2010/MFC编程入门之三十(常用控件:树形控件Tree Control 上)
- 中国大学MOOC-JAVA学习(浙大翁恺)—— 信号报告
- 版本控制工具(上)——Git的基本使用