[Oracle] 오라클 예외처리 (PL/SQL)

프로그램을 개발할때면 다양한 경우의 수를 예상 해 예외처리를 해야합니다. 이번 포스팅에서는 오라클 PL/SQL 예외처리 방법에 대해 알아보도록 하겠습니다.

 

예외처리 종류

오라클 예외처리는 크게 시스템 예외와 사용자 정의 예외로 나뉩니다. 시스템 예외는 오라클에서 발생시키는 에러로 나누기 연산 시 제수를 0으로 나누면 에러가 발생하는 에러 같은 것처럼 오라클 내부에 미리 정의된 에러를 의미합니다. 사용자 정의 예외는 사용자가 직접 예외를 정의해서 사용하는것을 말하는데 저는 실제로 실무에서 써본적은 없습니다.

 

예외처리 방법

EXCEPTION WHEN 예외명 THEN 예외처리 --예외명을 알 경우

WHEN OTHERS THEN 예외처리 --예외명을 모를 경우

오라클에서 예외를 처리하는 문법은 위와같습니다. 첫번째 경우에는 구체적인 예외명을 알아야 사용할 수 있는데 거의 쓰이지 않고 대부분 두번째 방법을 사용합니다. OTHERS를 사용하면 오라클 시스템에서 발생한 에러를 자동으로 잡아줍니다. 오라클 시스템에서 발생한 에러만 잡아주니 시스템 예외만 거를 수 있습니다.

DECLARE
    TEMP_NUM NUMBER := 0;
BEGIN
    TEMP_NUM := 10 / 0; --제수를 0으로 나눠 강제 에러발생

EXCEPTION WHEN OTHERS THEN
    DBMS_OUTPUT.PUT_LINE('오류가 발생하였습니다.');
END;

예외처리

 

예외처리를 꼭 해야하는가?

각종 오류마다 오라클 시스템에서 정의해둔 에러메시지가 있습니다. 오라클에서 에러를 만나면 예외처리를 하지 않아도 오라클에서 정의해둔 오류메시지는 출력됩니다. 그렇다면 예외처리는 꼭 하지 않아도 되지 않을까? 라고 생각할 수도 있을것 같습니다. 하지만 예외처리는 안정적인 프로그램을 만들기 위해서는 꼭 해줘야 합니다. 예외처리를 하지 않는다면 프로그램은 예기치 못한 에러를 만났을 때 그 즉시 프로그램이 비정상적으로 종료되지만 예외처리를 잘 해놓는다면 오류가 나도 프로그램이 종료되지 않고 계속 실행될 수 있기 때문입니다. SQL로 예외처리를 꼭 하실 필요는 없고 자바와 같은 프로그래밍 언어로 처리하셔도 됩니다.

댓글

Designed by JB FACTORY