作者热门文章
- Java 双重比较
- java - 比较器与 Apache BeanComparator
- Objective-C 完成 block 导致额外的方法调用?
- database - RESTful URI 是否应该公开数据库主键?
我不熟悉错误/异常处理。当异常被捕获
和抛出
时,“幕后”发生了什么?
即在 try-catch block 中捕获异常然后抛出它有什么意义?
例如:
try {
//Stuff
} catch(StuffException e) {
throw new MyException();
}
}
最佳答案
关于异常机制的内部工作原理:有大量关于此的文档。我特别喜欢这篇文章: http://www.javaworld.com/article/2076868/learn-java/how-the-java-virtual-machine-handles-exceptions.html
超简短摘要:抛出异常时,jvm 在表中查找(异常的 init() 方法)继续执行的表。
对于你问题的第二部分:
what is the point of catching an exception in a try-catch block, then throwing it?
我看到一些捕获异常并抛出另一个异常的原因:
您可能想要捕获未经检查的异常(因为您知道,“可能会发生不好的事情”)并抛出一个已检查的 - 所以调用者必须处理它。
你想使用一个自定义异常,也许还有额外的信息/逻辑
您正在实现错误外观,例如抛出异常和在立面的尽头捕获它们。
关于java - 捕获并抛出异常 : What happens "under the hood"?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33349227/
我是一名优秀的程序员,十分优秀!