Вопрос: Мы можем закомментировать sleep? — КиберПедия 

Археология об основании Рима: Новые раскопки проясняют и такой острый дискуссионный вопрос, как дата самого возникновения Рима...

Семя – орган полового размножения и расселения растений: наружи у семян имеется плотный покров – кожура...

Вопрос: Мы можем закомментировать sleep?

2022-10-10 47
Вопрос: Мы можем закомментировать sleep? 0.00 из 5.00 0 оценок
Заказать работу

Ответ: Нет. После того как мы закомментируем sleep, Java сразу же задаст вопрос, а зачем тогда тебе InterruptedExceptionв блоке catch? Можешь мне пояснить? А убирать блок try-catchтоже нельзя. Т.к. данные блоки потребуются при синхронизации. В общем выглядит это как-то не очень красиво. Я не хочу писать sleep, тогда мне говорят убери блок try-catch. В общем здесь есть одна хитрая система, как эту проблему решить.

Видите, как получается? У нас в любом случае есть в методе run, чаще всего придется обрабатывать исключение InterruptedException. И у нас там уже будет какая-то бизнес-логика. Может быть мы будем писать какие-то логи и если нас попросят остановиться, то нужно будет также написать какой-то лог. С другой стороны проблемы здесь нет, ну и что, что исключение.

Вопрос: Что происходит, когда в главном потоке происходит необработанное исключение?

Ответ: Программа завершается.

Вопрос: Что произойдет, если этот дополнительный поток завершится с исключением, который вы не обрабатываете?

Ответ: Возьмите на 0 разделите. Будет исключение? Да. Потокзавершится? Да. Выобэтомузнаете? Нет. Т.е. может произойти необработанное исключение и тоже хотелось бы быть в курсе, что они происходят, потому что если поток работал, и вдруг пропал… Почему? Агдеданные? А что случилось с ним?

end of main Name = Thread-0, i = 0 Name = Thread-1, i = 0 Name = Thread-1, i = 1 Name = Thread-1, i = 2 Exception in thread "Thread-0" java.lang.ArithmeticException: / by zero Name = Thread-1, i = 3 Name = Thread-1, i = 4 СБОРКА УСПЕШНО ЗАВЕРШЕНА (общее время: 0 секунд)

Ну это NetBeansтакой умный. Но программа-то доработала, видите? Это где-то NetBeansу себя ловушку поставил. А если у вас будет обычная система? В этой ситуации вам придется как-то думать как выкрутиться? Все уже сделано, и нужно только знать куда залезть.

Метод setUncaughtException добавили только в версии 1.5. Они тоже думали, надо ли перехватывать вам необработанные исключения? Потом все-таки решили, что надо. Вот то, что вы в качестве параметра укажете вызывается когда поток завершается в результате появления необработанного исключения. Т.е. вы можете задать для потока обработчик на необработанное исключение с которым он завершается. Если задать в качестве параметра null, то это значит, что вообще мы не ловим необрабатываемых исключений. Просто чтобы вы понимали. Надо логировать необработанные исключения (а у вас потоков может допускаться сколько угодно). Возьмите один обработчик и каждому будете говорить. Он будет один для всех потоков он будет перехватывать и логировать все необработанные исключения. Все это продумано, потому что вопрос здесь действительно возникает, а как поймать другие исключения? Вот я вам это показал.

Идем дальше…


Поделиться с друзьями:

Адаптации растений и животных к жизни в горах: Большое значение для жизни организмов в горах имеют степень расчленения, крутизна и экспозиционные различия склонов...

Папиллярные узоры пальцев рук - маркер спортивных способностей: дерматоглифические признаки формируются на 3-5 месяце беременности, не изменяются в течение жизни...

Наброски и зарисовки растений, плодов, цветов: Освоить конструктивное построение структуры дерева через зарисовки отдельных деревьев, группы деревьев...

Опора деревянной одностоечной и способы укрепление угловых опор: Опоры ВЛ - конструкции, предназначен­ные для поддерживания проводов на необходимой высоте над землей, водой...



© cyberpedia.su 2017-2024 - Не является автором материалов. Исключительное право сохранено за автором текста.
Если вы не хотите, чтобы данный материал был у нас на сайте, перейдите по ссылке: Нарушение авторских прав. Мы поможем в написании вашей работы!

0.006 с.