Sobes.tech
Назад к вопросам
Middle
10

Работал ли с исключениями? Какие виды исключений есть в PL/SQL?

Компании, где спрашивали
AltDev

Ответ от нейросети

sobes.tech AI

В PL/SQL работа с исключениями — важная часть обработки ошибок и управления потоком выполнения.

Основные виды исключений в PL/SQL:

  1. Предопределённые исключения (Predefined exceptions) — встроенные в язык, например:

    • NO_DATA_FOUND — когда запрос SELECT не возвращает строк.
    • TOO_MANY_ROWS — когда SELECT возвращает больше одной строки.
    • ZERO_DIVIDE — деление на ноль.
    • VALUE_ERROR — ошибка преобразования типов.
  2. Пользовательские исключения (User-defined exceptions) — объявляются программистом с помощью EXCEPTION и вызываются через RAISE.

  3. Исключения, связанные с ошибками Oracle (Oracle error exceptions) — ловятся через OTHERS или с помощью SQLCODE и SQLERRM.

Пример обработки исключения:

DECLARE
  v_num NUMBER;
BEGIN
  SELECT salary INTO v_num FROM employees WHERE employee_id = 9999;
EXCEPTION
  WHEN NO_DATA_FOUND THEN
    DBMS_OUTPUT.PUT_LINE('Сотрудник не найден');
  WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('Другая ошибка: ' || SQLERRM);
END;

Таким образом, исключения позволяют контролировать ошибки и обеспечивать надежность PL/SQL кода.