java – 抛出异常会改变它的状态吗?
发布时间:2020-05-25 22:37:59 所属栏目:Java 来源:互联网
导读:我做了一些像这样的简单实验: public static void main(String[] args) { try { NullPointerException n = new NullPointerException(); System.out.println(Lists.newArrayList(n.getStackTrace()));
|
我做了一些像这样的简单实验: public static void main(String[] args) {
try {
NullPointerException n = new NullPointerException();
System.out.println(Lists.newArrayList(n.getStackTrace()));
n.printStackTrace();
System.out.println(Lists.newArrayList(n.getStackTrace()));
throw n;
} catch (NullPointerException e) {
e.printStackTrace();
System.out.println(Lists.newArrayList(e.getStackTrace()));
}
}
得到这样的输出: java.lang.NullPointerException
at MyTest.main(MyTest.java:231)
java.lang.NullPointerException
at MyTest.main(MyTest.java:231)
[MyTest.main(AbstractScannerTest.java:231)]
[MyTest.main(AbstractScannerTest.java:231)]
[MyTest.main(AbstractScannerTest.java:231)]
但是我想知道抛出异常时是否做了什么.这是一个主要的学术问题,但如果异常是API的一部分,并且在提供给实现时可能会或可能不会被抛出,则在某些情况下它可能是相关的. 解决方法不,抛出操作不会修改Throwable对象本身;它简单地传递给调用堆栈,类似于方法的参数. Throwable通常被设计为不可变对象,并且没有setter,但有些支持修改堆栈跟踪,以便RPC或类似框架可以确保包含适当的错误跟踪信息.也就是说,Throwable是一个像任何其他对象一样的对象,你可以写一个Throwable类,它有一个在catch块中调用的mutator方法,尽管这并不常见.(编辑:安卓应用网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |
相关内容
- 让JPA的Query查询接口返回Map对象的方法
- 获取Android设备屏幕宽、高、dpi密度及横竖屏等参数
- java – ScheduledExecutorService并行多个线程
- java – 嵌入式Jetty – Spring MVC – 视图解析器 – 无XM
- java – LoggerFactory.getLogger(ClassName.class)vs Logg
- Java Socket编程(五) 简单的WEB服务器
- Java OutOfMemory异常:加载zip文件时出现mmap错误
- Java并发编程之显式锁机制详解
- java – 如何在IntelliJ中运行Play Framework 2.1项目?
- java – 如何使用camel将大文件发送到ActiveMQ
