Как узнать, какая именно функция выдает исключение (Java)? - PullRequest
1 голос
/ 07 февраля 2012

У меня есть две функции (ServerSocket.accept() и Socket.setSoTimeOut()), которые генерируют IOException и SocketException, который расширяет IOException.

Как узнать, какая функция выдает это исключение, если перехватывает IOException? Должен ли я вызывать эти функции в отдельных блоках try / catch? Или есть более правильный способ сделать это?

Ответы [ 3 ]

1 голос
/ 07 февраля 2012

Как насчет двух блоков catch, одного для SocketException и другого для IOException.Затем вы можете указать, какой вызов метода завершился неудачей с помощью блока catch, который выполняется.

Примечание. Блок catch для SocketException должен стоять первым, чтобы код был корректным и компилируемым.

0 голосов
/ 07 февраля 2012

Я бы перевернул вопрос: «Нужно ли запускать отдельную логику, если вызов метода вызвал исключение»?Если ответ положительный, тогда действительно нужны два блока try / catch.

0 голосов
/ 07 февраля 2012

Используйте метод getStackTrace () объекта Exception.

...