Исключение NullPointerException при загрузке класса
62
11
Следующий код дает NullPointerException:
badOb = Class.forName("sample");
try {
Object obj = badOb .newInstance();
} catch (ThreadDeath e) {
throw e;
} catch (Throwable e) {
if (expectedException.isInstance(e)) {
out.println("Expected runtime exception: " + e);
return 0;
} else {
out.println("Unexpected runtime exception: " + e);
return 1;
}
}
Но когда я добавляю оператор печати, например:
badOb = Class.forName("sample");
out.println("hello");
try {
Object obj = badOb .newInstance();
} catch (ThreadDeath e) {
throw e;
} catch (Throwable e) {
if (expectedException.isInstance(e)) {
out.println("Expected runtime exception: " + e);
return 0;
} else {
out.println("Unexpected runtime exception: " + e);
return 1;
}
}
Он работает нормально и дает ожидаемое исключение.
Я проверил, и объект badob не является NULL. Когда я смотрю на байт-код, следующие строки добавляются при добавлении оператора печати:
aload_3
ldc #19; //String hello
invokevirtual #1
Может ли кто-нибудь помочь мне разобраться в этом?
Моя среда java:
java version "1.5.0"
Java(TM) 2 Runtime Environment, Standard Edition
Изменить: он также работает так, как ожидалось, если я представлю задержку на несколько секунд вместо инструкции печати.
спросил(а)
2016-01-19T09:01:00+03:00
5 лет назад
добавить комментарий
пожаловаться
Ваш ответ
Еще в рубрике
61
Исключение нулевого указателя весной с гибернацией и аннотацией OneToOne
-4
java.lang.NullPointerException при попытке установить текст в JButton
112
Причина: Исключение в потоке "AWT-EventQueue-0" java.lang.NullPointerException
111
NullPointerException для сохранения файла на внешнем хранилище (на одном телефоне, но не на другом)
- Вопросы
- Nullpointerexception
- Исключение NullPointerException при загрузке класса