我正在创建一个通用类,它接受一个它愿意处理的异常列表作为参数。
public class MyClass {
public MyClass (List<Class<? extends RuntimeException>> exceptions) ...
public execute() {
try {
justObj.call()
} catch(RuntimeException e) {
if exceptions.contains(e.getClass()) {...}
else {throw e;}
}
我希望抛出的异常是我捕获的原始异常,例如如果它是 NullPointerException,那么我希望抛出的是 NullPointerException,而不是现在的 RuntimeException。
知道如何实现吗?
最佳答案
当您捕获 RuntimeException(或任何子类)时,它不会更改对象/异常的类型。如果它是一个 NullPointerException,当你再次抛出它时它仍然是这种类型的对象(就像你在代码中那样)
关于java - 重新抛出 RuntimeException 的子类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7742038/