В Java Thread.sleep () бросает InterruptedException. Каков правильный поступок за этим исключением?
Если я
Вы должны повторно вызвать исключение.
Это отрывок от Брайана Гетца, автора замечательной книги « Java Concurrency in Practice »:
Работа с InterruptedException :
Если выброс InterruptedException означает что метод - это метод блокировки, затем вызов метода блокировки означает что ваш метод является методом блокировки тоже, и у вас должна быть стратегия для работы с InterruptedException. Часто самая простая стратегия - бросить InterruptedException, как показано в putTask () и getTask () методы в листинге 1. Это делает ваш метод реагирует на прерывание также и часто ничего не требует больше, чем добавление InterruptedException к вашей статье о бросках.
Если все, что вы пытаетесь сделать, это записать НЕКОТОРЫЕ время, я бы посоветовал просто перехватить и проигнорировать исключение.
Если, с другой стороны, вам нужно надлежащее время ожидания и любое превентивное прерывание ДЕЙСТВИТЕЛЬНО ПЛОХО для вашей программы, то вам определенно следует повторно выбросить исключение.
Это просто зависит от того, почему произошло исключение и каков ваш вариант использования Thread.sleep ()
в первую очередь.