powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Java [игнор отключен] [закрыт для гостей] / Интересное поведение try-catch-finally
5 сообщений из 5, страница 1 из 1
Интересное поведение try-catch-finally
    #34798314
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Добрый день!
Вот столкнулся с такой ситуацией случайно... обрабатывая исключения. Вкратце сформулирую так:

есть такой фрагмент:
Код: plaintext
1.
2.
3.
4.
5.
6.
 try  {
    String s =  null ;
    s.length();             //искуственно генерирую NullPointerException, блоков catch нет
}  finally  {
    System.out.println("---");
}

так вот на консоль выводится иногда так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
---
Exception in thread "main" java.lang.NullPointerException
	at live.Test.main(Test.java: 15 )
	at sun.reflect.NativeMethodAccessorImpl.invoke0( Native  Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39 )
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25 )
	at java.lang.reflect.Method.invoke(Method.java: 597 )
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java: 90 )

а иногда так:
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
Exception in thread "main" java.lang.NullPointerException
	at live.Test.main(Test.java: 15 )
---
	at sun.reflect.NativeMethodAccessorImpl.invoke0( Native  Method)
	at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java: 39 )
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java: 25 )
	at java.lang.reflect.Method.invoke(Method.java: 597 )
	at com.intellij.rt.execution.application.AppMain.main(AppMain.java: 90 )
во втором случае заметно что блок finally выполняется после того как исключение было передано в контекст из которого был вызов метода.
Чем это объяснить?
Мне на ум приходят такие версии:
1) это иллюзия, вызванная задержкой ввода-вывода на консоль
2) глюк среды (в данном случае использовал IDEA)
3) так должно быть

IDEA 7.0M2, J2SE 1.6
...
Рейтинг: 0 / 0
Интересное поведение try-catch-finally
    #34798372
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
unicornmirage1) это иллюзия, вызванная задержкой ввода-вывода на консоль
2) глюк среды (в данном случае использовал IDEA)

Оба, так как в твоем случае IDEA предоставляет реализацию "консоли"
...
Рейтинг: 0 / 0
Интересное поведение try-catch-finally
    #34798375
Фотография 1024
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
просто потоки err и out неточно смешиваются, сделай

System.err.println("---");
...
Рейтинг: 0 / 0
Интересное поведение try-catch-finally
    #34798384
unicornmirage
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ясно... так и думал. спасибо!
...
Рейтинг: 0 / 0
Интересное поведение try-catch-finally
    #34798386
Фотография Blazkowicz
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1024просто потоки err и out неточно смешиваются, сделай
System.err.println("---");
Ох, что-то я тупею. До такой ерунды и не догадался. Респект.
...
Рейтинг: 0 / 0
5 сообщений из 5, страница 1 из 1
Форумы / Java [игнор отключен] [закрыт для гостей] / Интересное поведение try-catch-finally
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]