Java RuntimeException的rethrowing子类
我正在创建一个通用类,该类接受它愿意处理的异常列表作为参数Java RuntimeException的rethrowing子类,java,exception-handling,Java,Exception Handling,我正在创建一个通用类,该类接受它愿意处理的异常列表作为参数 public class MyClass { public MyClass (List<Class<? extends RuntimeException>> exceptions) ... public execute() { try { justObj.call() } catch(RuntimeException e) { if exceptions.conta
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;}
}
公共类MyClass{
public MyClass(List当您捕获RuntimeException(或任何子类)时,它不会更改对象/异常的类型。如果它是NullPointerException,当您再次抛出它时,它仍然是这种类型的对象(正如您在代码中所做的)当您捕获RuntimeException(或任何子类)时,它不会更改对象/异常的类型。如果它是NullPointerException,当您再次抛出它时,它仍然是这种类型的对象(正如您在代码中所做的)它将是-RuntimeException只是对原始对象的引用,它将是RuntimeException最初抛出的任何子类(例如NullPointerException)。它将是-RuntimeException只是对原始对象的引用,它将是最初抛出的RuntimeException的任何子类(例如NullPointerException)。它已经工作了:
public static void main(String[] args) {
try {
((ArrayList) null).get(0);
} catch (RuntimeException e) {
throw e;
}
}
抛出:
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:96)
它已经起作用了:
public static void main(String[] args) {
try {
((ArrayList) null).get(0);
} catch (RuntimeException e) {
throw e;
}
}
抛出:
Exception in thread "main" java.lang.NullPointerException
at Test.main(Test.java:96)
你试过了吗?如果没有,为什么没有?谢谢。我的代码中有一个bug改变了类型。你试过了吗?如果没有,为什么没有?谢谢。我的代码中有一个bug改变了类型。