Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Unix.docx
Скачиваний:
2
Добавлен:
01.03.2025
Размер:
1.91 Mб
Скачать

8.11. Блоки try catch finally, обработка исключений.

При возникновении ошибки, в Java программе возбуждается исключение (exception). Ошибки можно

обрабатывать при помощи конструкции try catch finally.

Синтаксис:

try { /* часть программы, где возможно возникновение ошибки */ } catch ( тип_исключения переменная )

{ /* блок кода, выполняющийся при возникновении ошибки; */ }

finally { /* блок кода, выполняющийся после блока try и блока catch, даже если ошибки не было */}

Пример 1:

try { /* часть программы, где возможно возникновение ошибки */ } catch ( NumberFormatException oshibka)

{ String text="Неверный формат числа :"+oshibka.toString; System.out.println(text); } catch ( ArithmeticException oshibka)

{ String text="Ошибка вьraислений:"+osЫbka.toString; System.out.println(text); }

finally { System.out.println("Конец"); }

Пример 2*:

import java.io. IOException

try { /* часть программы, где возможно возникновение ошибки */ } catch ( IOException oshibka)

{ System.out.println("Какая-то ошибка ввода-вывода"); }

* Перехват различных типов ошибок определен в различных пакетах (классах), поэтому перед заданием блока try .. catch .. finally необходимо импортировать import соответствующий класс из соответствую­щего пакета (см. пример 2). Однако часть исключений описана в пакете java.lang - их можно использовать сразу, т. к. этот пакет уже "проимпортирован" для любой Java программы.

Исключение

Пакет

Причина возникновения

RuntimeException

java.lang

Ошибка времени выполнения.

SecurityException

java.lang

Апплет пытается выполнить действие, запрещенное режимом защиты, установленным в браузере

OutOf MemoryException

java.lang

Недостаток памяти при размещении нового объекта

StackOverflowException

java.lang

Переполнение стека

ArithmeticException

java.lang

Математические ошибки, например, деление на ноль

NumberFormatException

java.lang

Неправильное преобразование между строками и числами. Неверный формат числа

IndexOutOfBoundsException

java.lang

Индекс вышел за пределы структуры

ArrayIndexOutOfBoundsException

java.lang

Неправильные индексы массива

StringlndexOutOfBoundsException

java.lang

Программа пыталась обратиться к несуществующей позиции символа в строке

Array StoreException

java.lang

Программа пытается записать в массив неправильный тип данных

NullPointerException

java.lang

Ссылка на null-объект

NoSuchMethodException

java.lang

Объект не имеет такого метода.

IOException

java.io

Общие ошибки ввода/вывода, например, невозможность чтения из файла

FileNotFoundException

java.io

Обращение к несуществующему файлу

EOFException

java.io

Достигнут конец файла

InterruptedIOException

java.io

Ввод/вывод прерван

AWTException

java.awt

Ошибка оконного графического интерфейса

MalformedURLException

java.net

Неверно задан URL-адрес

ProtocolException

java.net

Ошибка протокола.

SocketException

java.net

Ошибка сокета

UnknownHostException

java.net

Хост не найден

UnknownServiceException

java.net

Сервис не найден

Переменной oshibka, в приведенном выше примере, присваивается указатель на объект "исключение", который имеет следующие методы:

getMessage () - возвращает строку, с подробной информацией об исключении. toString() - преобразует объект в строку, которую можно вывести на экран. printStackTrace () - отображает иерархию вызовов методов, приведших к исключению.

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]