Я изучаю функции в java, включая исключения. Я пишу пользовательские исключения. Вот что я делаю: пользовательский класс исключений:
public class ServiceException extends Exception {
private String customMessage;
public ServiceException(String customMessage) {
super(customMessage);
this.customMessage = customMessage;
}
}
Основной класс:
public class Main {
public static void main(String[] args) {
try {
new Main().test();
} catch (Exception e) {
System.out.println("the exception message is " + e.getMessage());
}
}
public void test() throws ServiceException {
try {
int i = 1 / 0;
} catch (Exception e) {
throw new ServiceException(e.getMessage());
}
}
}
Насколько я знаю: если конструктор суперкласса не вызывается в пользовательском классе исключений, сообщение, установленное в пользовательском исключении, не передается в класс исключений. Но если у меня есть метод public String getMessage в моем пользовательском классе исключений, даже если super не вызывается, это сообщение печатается. Извините, если это наивный вопрос. Но я не могу понять его концепцию. Не мог бы кто-нибудь помочь прояснить концепцию?