不知何故,我今天遇到了一個錯誤,我試圖複製它。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