В чем преимущество использования нескольких исключений в одном блоке catch?

Мы все слышали, что в Java 7 мы можем писать:

try {
   //something with files and IO
} catch (FileNotFoundException | IOException ex) {
    ex.printStackTrace();
    System.out.println("It's can't copy file");
}

вместо

try {
   //something with files and IO
} catch (FileNotFoundException wx) {
    ex.printStackTrace();
} catch (IOException ex) {
   ex.printStackTrace();
}

, но для чего это действительно хорошо, кроме более короткого кода?"
Даже если мы хотим, чтобы в каждом блоке catch выполнялись одни и те же операции, мы можем:

  1. перехватить только IOException, потому что FileNotFoundException является подтипом.
    или
  2. если одно исключение не является подтипом другого, мы можем написать какой-нибудь метод handleException () и вызывать его в каждом блоке catch.

Итак, эта функция используется только для более чистого кода или для чего-то еще?

Спасибо.

9
задан Michael Myers 25 August 2011 в 20:35
поделиться