EXCEPTION в Oracle SQL. Введение
Работа с базой данных всегда сопровождается рисками ошибок: отсутствием данных, нарушением ограничений, делением на ноль, и т.д.
Чтобы программа не «падала», Oracle предоставляет встроенный механизм обработки исключений, начинающийся с ключевого слова EXCEPTION.
С помощью него можно:
Перехватывать ошибки
Выводить сообщения
Выполнять альтернативные действия
Защищать данные от порчи
🔤 Написание
🧮 Пример:
🔄 Где часто используется
В процедурах и функциях
При работе с
SELECT INTO,UPDATE,DELETEВ курсорах
В пакетной обработке
В пользовательских триггерах и пакетах API
🧪 10 Примеров использования EXCEPTION с пояснениями
1️⃣ Обработка ошибки NO_DATA_FOUND
Избегаем ошибки, если запись не найдена.
2️⃣ Обработка TOO_MANY_ROWS
Когда SELECT INTO возвращает больше одной строки.
3️⃣ Общий перехват всех ошибок (WHEN OTHERS)
Последний рубеж защиты.
4️⃣ Исключение с ROLLBACK
Гарантия целостности данных.
5️⃣ Пользовательское исключение
Создание и вызов собственного исключения.
6️⃣ Вывод текста ошибки через SQLERRM
Полезно для отладки.
7️⃣ Подавление ошибки (ничего не делаем)
Осознанное игнорирование.
8️⃣ Работа с делением на ноль
Проверка арифметических ошибок.
9️⃣ Логгирование ошибок в таблицу
Хорошая практика — сохранять ошибки.
🔟 EXCEPTION внутри процедуры
Безопасное выполнение DML.
🧩 Заключение
Оператор EXCEPTION позволяет писать устойчивый, безопасный и предсказуемый код. Он делает PL/SQL-наборы настоящими программами, а не просто скриптами. Правильная обработка ошибок — залог надёжной системы.
💡 Запомни:
Используется только в блоках
BEGIN...ENDОбрабатывает как стандартные, так и пользовательские ошибки
Используй
WHEN OTHERS— как крайний случайСохраняй ошибки в лог для аудита