48. Генерация и обработка исключений.

Генерация

Для генерации исключения используется throw:

throw выражение;

Здесь выражение может иметь любой тип результата! Существует стандартный конструктор Error, которому передаётся строка с описанием ошибки (она сохраняется в свойстве message).

Случай 1. throw используется внутри функции:

Выполнение функции прекращается, управление передаётся на ближайший catch в стеке вызова. Если catch отсутствует, прекращается выполнения всего скрипта (но не других скриптов на странице).

Случай 2. throw используется вне функции («глобально»):

Если есть обрамляющий блок обработки, управление передаётся на его catch. Если обрамляющий блок обработки отсутствует, прекращается выполнения всего скрипта (но не других скриптов на странице).

Обработка

Все фигурные и круглые скобки обязательны. Присутствует или блок catch, или блок finally, или оба.

Переменная e (имя может быть любым) видима только в catch-блоке и имеет значение, которое указывали после throw при генерации исключения.

В блоке catch можно обработать исключение или (и) сгенерировать исключение повторно.

Блок finally выполняется, если блок try завершился: