Как отловить только по типу исключения - PullRequest
0 голосов
/ 03 декабря 2018

Есть ли способ отлова только на основе типов исключений, без использования идентификатора, как это делает Python.Когда я попытался выполнить следующее, компилятор пожаловался на отсутствие идентификатора:

try {
    doSthThatThrows();
} catch (IOException) {
    handleIOException();
} catch (IllegalArgumentException) {
    handleArgumentException();
}

…, сообщившего об этой ошибке:

Main.java:19: error: <identifier> expected
    } catch(IllegalArgumentException)
                                    ^
1 error

1 Ответ

0 голосов
/ 03 декабря 2018

В простой Java у вас должен быть идентификатор для имени, и вы не можете использовать подчеркивание для имени (распространенный способ избежать ввода имени / идентификатора в Groovy ).

См. Статью Oracle, Перехват нескольких типов исключений и повторное создание исключений с улучшенной проверкой типов

Изменить кодназвать переменную для создаваемого исключения.Например, e в коде ниже.Обратите внимание, что вы можете перерабатывать одно и то же имя переменной в операторах catch.

try {
    doSthThatThrows();
} catch ( IOException e ) {
    …
} catch ( IllegalArgumentException e ) {
    …
}
...