Вот, блин, навернули:
public class Reluctant {
private Reluctant instance = new Reluctant();
public Reluctant() throws Exception {
throw new Exception("I'm not coming out");
}
public static void main(String[] args) {
try {
Reluctant r = new Reluctant();
System.out.println("Surprise!");
} catch (Exception e) {
System.out.println("I told you so");
}
}
}
А StackOverflowError получить не желаете? Дело в том, что поля класса инициализируются перед исполнением содержимого конструктора. Вот так и зацикливаемся...
Обратите внимание, что конструктор должен декларировать все проверяемые исключения, которые могут возникнуть не только в теле конструктора, но и в процессе инициализации полей класса.
Комментариев нет:
Отправить комментарий