Trial book

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

В некоторых случпаях один фрагмент кода может инициализировать более одного исключения. Чтобы спраиться с такой ситуацией, вы можете задать два или более операторов 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
}