Начал изучать Java неделю назад, а также решил изучить правильный способ работы с исключениями.Java действительно сводит меня с ума от идеи определения исключений, которые метод может выдавать как часть своей подписи.
В настоящее время я пытаюсь реализовать многопоточный сервер для клиент-серверного приложения.Я был очень удивлен тем, что socket.close()
может бросить IOException.Вопрос в том, что мне делать, если это произойдет?
...
final Socket socket = .... // at this point I know that I have a good socket
try {
..... // communicating with someone on that side....
} catch(IOException e) {
// communication failed
// this fact is useful, I can log it
// and will just hang up
} finally {
try {
socket.close(); // bye-bye
} catch(IOException e) {
// anything but logging I can do here?
}
}
...
Этот фрагмент кода выполняется в отдельном потоке, поэтому я просто должен перехватить все исключения.Проблема в основном психологическая - я знаю, я могу просто оставить блок catch
пустым, но я пытаюсь избежать этого трюка.
Есть мысли?