logo
ЯП / ЯП / ЯП экзамен

Обработка исключительных ситуаций. Иерархия и виды исключительных ситуаций.

Исключительные ситуации — это аварийные ситуации, которые могут возникнуть во время выполнения программы. В Java исключительные ситуации могут генерироваться либо исполнительной системой JAVA (некоторые фундаментальные ошибки), либо программным кодом(вручную), для сообщения вызывающей программе о некоторой аварийной ситуации. При возникновении исключения, оно должно быть захвачено обработчиком, если таковой определен программистом, или обработчиком по-умолчанию. В последнем случае выдается сообщение, описывающее исключение, формируется определенная дополнительная информация(трасса стека от точки где произошло исключения) и программа завершается. Если это нежелательно, то необходимо предусмотреть обработку.

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

Традиционные варианты обработки ошибки:

- Завершить программу, выдав сообщение об ошибке.

- Возвратить условленное значение, обозначающую ошибку.

- Возвратить значение, как при нормальном завершении, выставив некоторый внешний признак ошибки.

- Вызвать функцию, предназначенную для вызова в случае ошибки.

Традиционно с оператором IF

Недостатки этого метода – мало информации о причине возникновения ошибки, поэтому необходимо передавать дополнительную информацию (через поля класса, либо через аргументы функции).

Механизмы функционирования обработчиков исключений.

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

  2. Обработка с возвратом типична для асинхронных исключений.

Обработка без возобновления заключается в том, что после выполнения кода обработчика исключения управление передается в некоторое заранее заданное место программы и с него продолжается исполнение.

Так же существует 2 варианта подключения обработчика исключительных ситуаций к программе.

  1. Структурное

  2. Неструктурное