Если триггерная функция завершается с ошибкой, PostgreSQL откатывает всю транзакцию. 3
Однако иногда нужно просто записать ошибку, не прерывая транзакцию. 3 Для этого в PostgreSQL используется предложение EXCEPTION. 34
Процесс обработки ошибок с помощью EXCEPTION: 4
- Если возникает ошибка, выполнение команд в блоке прерывается. 4
- Управление передаётся в раздел EXCEPTION. 4
- Производится поиск первого из условий, удовлетворяющих возникшей ошибке, и запускается соответствующий обработчик. 4
- После этого управление передаётся следующей после END команде. 4
- Если ни одно из условий не удовлетворяет ошибке, обработка исключения передаётся первому из объёмлющих блоков, в котором есть раздел EXCEPTION. 4
- Если такого блока нет, выполнение функции останавливается и выводится сообщение об ошибке. 4
Список кодов ошибок приведён в документации к PostgreSQL. 4