Множественные исключения

В некоторых случаях один фрагмент кода может инициализировать более одного исключения. Чтобы справиться с такой ситуацией, вы можете задать два или более операторов catch, каждый для перехвата своего типа исключений. Когда передается исключение, каждый оператор catch проверяется по порядку, и первый из них, тип которого соответствует исключению, выполняется. После того как выполнится один из операторов catch, все остальные пропускаются и выполнение программы продолжается с места, следующего за блоком try/catch. В следующем примере кода перехватываются два разных типа исключений (Начиная с Java 7 можно перехватывать разные исключения одной строкой):

try {
    ...
} catch (IOException|SQLException ex) {
    logger.log(ex);
    throw ex;
}

Однако, если каждое исключение подразумевает индивидуальные действия, придется создавать несколько блоков catch:

try {
    ...
} catch (IOException ex) {
    //action 1
} catch (SQLException ex) {
    //action 2
}

Last updated