| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > Java: Общие вопросы > Как сбросить поток ошибок. |
| Автор: boraldo 19.12.2008, 15:18 |
| У меня многопоточная программа. Каждый поток имеет метод run такого типа : try { int a = 1 / 0; } finally { System.exit(0); } В блоке try я выполняю действия (конечно не 1\0). Потоки таковы, что просто сам по себе он никогда не остановится. В случае возникновения ошибки я хочу, чтобы ошибка распечаталась в консоль, как обычно, а после этого все остальные потоки (thread) закрылись. Закрытие потоков я делаю методом System.exit(0); Итак, вопрос. Почему при выполнении такого кода ошибка не попадает в консоль? Как это исправить? Скажу сразу, что я не хочу добавлять catch(RuntimeException re) ибо считаю это порнографией. |
| Автор: rygel 19.12.2008, 15:29 |
| System.exit терминейтит виртуальную машину до того как она успевает распечатать стектрейс. почему бы явно в finally не распечатать ошибку? |
| Автор: AxNe0 19.12.2008, 16:22 |
| rygel, чтобы в finally распечатать трейс, надо его откуда-то получить ;) а получить неоткуда. boraldo, а что порнографического в таком catch'e ? в принципе RuntimeException'ы - это в большинстве случаев косяки кода, и уж если они случаются, то это гораздо более порнографическое А если по делу, предлагаю в catch блоке выводить stacktrace, бросать какой-то checked exception, а в потоке main его перехватывать и завершать работу как душе угодно |
| Автор: rygel 19.12.2008, 16:34 |