Триггеры Firebird при обработке исключений работают следующим образом: когда приложение или пользователь пытается выполнить INSERT, UPDATE или DELETE для строки таблицы, связанные с этой таблицей триггеры автоматически вызываются. 25
При возникновении исключения нормальный ход выполнения прерывается, и Firebird ищет ближайший обработчик этого исключения в текущем блоке BEGIN…END. 3
Если обработчика исключения в этом блоке нет, то Firebird поднимается на уровень выше (к внешнему блоку BEGIN…END) и ищет обработчик там, и так далее. 3
Если обработчик исключения найден, то выполняется его код, и далее управление передаётся на первый оператор за обработчиком исключения. 3
Если было сгенерировано исключение, которое никто не обрабатывает, то это исключение передаётся в клиентское приложение. 3 Чаще всего это приводит к выдаче пользователю сообщения о произошедшей ошибке. 3
Триггеры всегда выполняются в контексте конкретной операции DML, как часть этой операции и внутри той транзакции, которая осуществляет запрос оператора DML. 5 Если транзакция будет отменена, то и все действия, выполненные триггером, также будут отменены. 5