5.6 Исключения определяемые пользователем

5.6 Исключения определяемые пользователем

Встроенные исключения, обеспеченные классами Exception и Error могут не всегда быть достаточны, чтобы заманить в ловушку ошибки, встречающиеся в программе. Могут быть случаи, когда мы должны создавать свои собственные исключения. Определяемый пользователем класс исключения должен быть подклассом класса Exception (Исключения).

Обратите внимание: Преимущества разделения класса Exception на подклассы состоит в том, что новый тип исключения может быть пойман отдельно от других подклассов Throwable.

Класс Exception не определяет никаких собственных методов, но унаследовал все методы от Throwable. Таким образом, любые определяемые пользователем классы исключения, которые мы создаем, будут иметь все доступными им методы Throwable.

Пример 6 показывает, как создавать определяемый пользователем класс исключения.

Пример 6:
class ArraySizeException extends NegativeArraySizeException {
ArraySizeException() { // constructor
super( You have passed illegal array size );
      }
}
class UserExceptionDemo {
int size, array[];
UserExceptionDemo(int s) {
size = s;
try {
checkSize();
            }
catch(ArraySizeException e) {
System.out.println(e);
            }
      }
void checkSizeO throws ArraySizeException {
if(size < 0)
throw new ArraySizeException();
array = new int[3];
for(int i = 0; i < 3; i + + )
array[i] = i+l;
            }

public static void main(String arg[]) {
new UserExceptionDemo(Integer.parselnt(arg [0]));
            }
}

Класс исключения ArraySizeException - подкласс NegativeArraySizeException. Метод checkSize () печатает содержание массива, который передают как параметр программе. Этот метод, как ожидается, бросит исключение. Заметьте, что пункт бросков (throws) был включен в декларацию метода. Если размер массива отрицателен, тогда исключение типа ArraySizeException выбрасывается. Исключение обработано блоком catch из блока try, который содержит запрос к методу checkSize ().

Вывод показан на рисунке 5.8.


Рисунок 5.8: Вывод примера 6

назад к оглавлению вперед

Rus. Open Source company, г. Саратов
ул. Орджоникидзе, 156, офис 203
тел: 8 (8452) 57-84-41
e-mail: info@rus_opensource.com

Главная | Обзоры | О разном
Карта сайта

Учебная литература:

Введение в Linux
Основы JAVA
Архивы

© 2013 opensourcerules.net