Сегодня я как-то наткнулся на ошибку и пытался ее воспроизвести.
Я считаю, что приведенный ниже код вызовет исключение 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());
}
}
Caller:
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)
Спасибо!