不知何故,我今天遇到了一个错误,我试图复制它。Java异常NullPointerException在自定义异常
我相信下面的代码将抛出一个NullPointerException,因为ep
没有实例化,但我无法模拟它..
我相信,当异常是从主抛出的实例变量ep
为空。但是运行它不会显示NullPointerException。
当引发异常(throw e.getILException(100)
)时,MyException.MyException()
的构造函数被调用?
package sg.java.testException;
public class MyException extends Exception {
Exception ep;
public MyException() {
super();
ep = new Exception();
}
public OtherException getILException(long txnId) {
// the error is here, according to the stacktrace
return new OtherException(ep, ep.toString());
}
}
来电:
public static void main(String args[]) throws OtherException{
try{
Car.run();
}catch (MyException e){
throw e.getILException(100);
}
}
租车代码:
public class Car {
public static void run() throws MyException {
throw new MyException();
}
}
我希望能够复制此异常:
java.lang.NullPointerException
at sg.java.testException.MyException.getILException(MyException.java:13)
at sg.java.testException.ExceptionTest.main(ExceptionTest.java:8)
谢谢!
不幸的是,在生产源代码中,它没有被注释掉,所以我无法理解为什么。:( –
欣赏你的输入= p –
如果代码没有被注释掉,另一种可能性是有人在抛出异常之前改变了'ep'的值,我想看看代码'Car.run()'。 – wannik