01 | 예외처리
PL/SQL 코드를 작성할 때 발생할 수 있는 오류에는 크게 두 가지가 있다. 하나는 문법 오류로써 객체(테이블, 뷰, 함수, 프로시저 등)나 키워드 이름을 잘못 참조하거나 함수나 프로시저의 매개변수를 잘못 명시했을 때 발생되는 오류로, 이들은 컴파일할 때 걸러진다. 두 번째는 컴파일 때는 아무런 문제가 없으나 실행, 즉 런타임 때 로직을 처리하면서 발생하는 오류인데 이를 예외exception 라고 한다. 컴파일 시 발생하는 오류도 예외에 속하긴 하지만 보통 예외라고 하면 런타임 때의 오류를 말한다.
예외에는 다시 오라클에서 발생시키는 시스템 예외와 사용자가 의도적으로 발생시킬 수 있는 사용자 정의 예외로 구분할 수 있다. 시스템 예외로는 나눗셈 연산을 할 때 0으로 나눈다거나 SELECT INTO 절을 사용해 데이터를 가져올 때 조건에 만족하는 데이터가 없으면 발생하는 예외 등이 있다. 즉 시스템 예외는 오라클 내부에 미리 정의된 예외라고 할 수 있다. 이에 반해 사용자 정의 예외는 사용자가 직접 예외를 정의해서 사용하는 것을 말한다. 먼저 예외처리 구문에 대해 살펴 보자.