java – 向异常添加信息
发布时间:2020-12-14 16:31:59 所属栏目:Java 来源:网络整理
导读:我想向堆栈跟踪/异常添加信息. 基本上我现在有这样的东西,我真的很喜欢: Exception in thread "main" java.lang.ArithmeticException: / by zero at com.so.main(SO.java:41) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.refle
我想向堆栈跟踪/异常添加信息.
基本上我现在有这样的东西,我真的很喜欢: Exception in thread "main" java.lang.ArithmeticException: / by zero at com.so.main(SO.java:41) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke 但是,我想捕获该异常并添加其他信息,同时仍然具有原始堆栈跟踪. 例如,我想要这样做: Exception in thread "main" CustomException: / by zero (you tried to divide 42 by 0) at com.so.main(SO.java:41) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39) at sun.reflect.DelegatingMethodAccessorImpl.invoke 所以基本上我想抓住ArithmeticException并重新抛出,比如说,一个CustomException(添加“你试图在这个例子中划分42”),同时仍然保持堆栈跟踪从原来的ArithmeticException. 在Java中做什么正确的方法? 以下是正确的: try { .... } catch (ArithmeticException e) { throw new CustomException( "You tried to divide " + x + " by " + y,e ); } 解决方法
是的,您可以像Java 1.4中一样在Java中嵌套异常.我一直都这样做见
http://download.oracle.com/javase/1.4.2/docs/api/java/lang/Throwable.html.
当有人从您的自定义异常中打印堆栈跟踪时,它将显示嵌套ArithmeticException的CustomException堆栈跟踪和堆栈跟踪.你可以任意深入地嵌套. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 在Java中打印2位小数的整数
- java – 从N-ary树中随机选择一个节点
- java – Hibernate中的transaction.commit()是什么?
- 项目优化(1)
- java – 按钮文本消失在KitKat(API级别19)
- SpringMVC+MyBatis分页(最新)
- java – Peer to Peer Audio在Android上调用:语音中断和滞
- java – Android gms:play-services:8.1.0 DexIndexOverf
- java – 如何在JSP中使用JSTL或Standard Actions生成选择标
- java.util.concurrent.LinkedBlockingQueue put方法在Scala