오라클 예외처리 (PL/SQL)
개요
오라클 데이터베이스에서 PL/SQL 문법을 사용하여 개발을 할 때, 예외 처리는 매우 중요한 부분이다. 예외 처리는 프로그램 실행 도중 발생할 수 있는 오류나 예외 상황에 대처하는 방법을 제공한다. 이로써 예외가 발생하더라도 프로그램이 비정상 종료되지 않고 오류를 처리할 수 있다.
예외 처리 구문
예외 처리의 기본 구조는 다음과 같다.
BEGIN
-- 예외가 발생할 수 있는 코드
EXCEPTION
WHEN 예외종류1 THEN
-- 처리할 코드
WHEN 예외종류2 THEN
-- 처리할 코드
...
WHEN OTHERS THEN
-- 처리할 코드
END;
위의 예제에서 EXCEPTION
키워드로 시작하여 예외 처리 코드 블록이 시작되며, WHEN
키워드로 예외의 종류를 지정한다. THEN
키워드 이후에는 해당 예외가 발생했을 때 실행될 코드가 위치한다. WHEN
키워드로 정의된 예외 종류 중 어느 것에도 매치되지 않을 경우, WHEN OTHERS THEN
절에 정의된 코드가 실행된다.
기본 예외 종류
오라클에서는 다양한 예외 종류를 제공한다. 몇 가지 예외 종류의 예는 다음과 같다.
NO_DATA_FOUND
: 데이터를 조회하지 못했을 때 발생하는 예외ZERO_DIVIDE
: 0으로 나누기를 시도할 때 발생하는 예외TOO_MANY_ROWS
: 단일 행을 기대했으나 여러 행이 조회되었을 때 발생하는 예외
예외 처리 방법
예외를 처리하는 방법에는 크게 두 가지가 있다.
예외를 무시하고 실행을 계속한다.
BEGIN -- 예외가 발생할 수 있는 코드 EXCEPTION WHEN 예외종류1 THEN -- 처리할 코드 NULL; WHEN 예외종류2 THEN -- 처리할 코드 NULL; ... WHEN OTHERS THEN -- 처리할 코드 NULL; END;
위의 방법은 예외가 발생할 경우, 예외에 대한 처리를 분기하지 않고 그냥 넘어가는 방법이다. 때로는 예외상황에 대한 특별한 처리 없이 그냥 넘어가도록 구현하고자 할 때 사용된다.
예외를 적절하게 처리하고 실행을 중단한다.
BEGIN -- 예외가 발생할 수 있는 코드 EXCEPTION WHEN 예외종류1 THEN -- 처리할 코드 RAISE; WHEN 예외종류2 THEN -- 처리할 코드 RAISE; ... WHEN OTHERS THEN -- 처리할 코드 RAISE; END;
위의 방법은 예외가 발생할 경우, 예외에 대한 처리 후
RAISE
문을 통해 예외를 다시 발생시키는 방법이다. 이렇게 하면 발생한 예외로 인해 프로그램이 중단되도록 할 수 있다.
사용자 정의 예외
때로는 내장된 예외 종류로 제공되지 않는 예외 상황에 대해 직접 예외를 정의하고 처리해야 하는 경우가 있다. 이때 EXCEPTION
섹션에서 사용자 정의 예외를 정의할 수 있다.
DECLARE
예외_이름 EXCEPTION;
BEGIN
IF 조건 THEN
RAISE 예외_이름;
END IF;
EXCEPTION
WHEN 예외_이름 THEN
-- 처리할 코드
END;
마무리
위에서는 오라클 데이터베이스에서 PL/SQL을 사용하여 예외 처리하는 방법에 대해 설명하였다. 예외 처리는 프로그램의 로버스트성을 높이고, 응용 프로그램에서 발생할 수 있는 다양한 종류의 오류에 대응하는 강력한 도구이다. 잘 활용하여 안정적이고 오류 처리가 잘 이루어지는 프로그램을 개발할 수 있도록 노력해야 한다.
댓글