Книга: Основы программирования на Java
9.5. Несколько разделов catch
9.5. Несколько разделов catch
В некоторых случаях один и тот же блок программного кода может возбуждать исключения различных типов. Для того чтобы обрабатывать подобные ситуации, Java позволяет использовать любое количество catch-разделов для try-блока. Наиболее специализированные классы исключений должны идти первыми, поскольку ни один подкласс не будет достигнут, если поставить его после суперкласса. Следующая программа перехватывает два различных типа исключений, причем за этими двумя специализированными обработчиками следует раздел catch общего назначения, перехватывающий все подклассы класса Throwable.
class MultiCatch {
public static void main(String args[]) {
try {
int a = args.length;
System.out.println("a = " + a);
int b = 42 / a;
int c[] = { 1 };
c[42] = 99;
}
catch (ArithmeticException e) {
System.out.println("деление на ноль: " + e);
}
catch(ArrayIndexOutOfBoundsException e) {
System.out.println("неправильный индекс массива: " + e);
}
}
Этот пример, запущенный без параметров, вызывает возбуждение исключительной ситуации деления на ноль. Если же мы зададим в командной строке один или несколько параметров, тем самым установив переменную «а» в значение больше нуля, наш пример выполнит оператор деления, но в следующем операторе будет возбуждено исключение выхода индекса за границы массива ArraylndexOutOfBounds. Ниже приведены результаты работы этой программы, запущенной и тем и другим способом.
C:> java MultiCatch
a = 0
div by 0: java.lang. ArithmeticException: / деление на ноль
C:> java MultiCatch 1
a= 1
неправильный индекс массива: java.lang.ArrayIndexOutOffloundsException: 42
- Распараллеливание на несколько процессоров
- 22.4.9 Несколькоадресные рассылки
- Когда печатаю, перед повтором буквы приходится выжидать несколько секунд
- Что делать, если надо создать несколько компакт-дисков с одним набором файлов?
- Бывает, что много файлов удаляется быстро, а один файл может удаляться несколько минут. В чем причина?
- Глава 11 Вся жизнь в несколько строчек
- Как одним щелчком кнопки мыши закрыть несколько окон одновременно?
- Правда ли, что можно хранить несколько документов в одном файле?
- 2.3.3. Ручное создание разделов
- 4.3.5. Несколько замечаний
- Несколько советов обеспокоенным администраторам
- Несколько примеров