IT수업/데이터베이스

it 수업 7주차 (27) EXCEPTION

워제하 2024. 2. 8. 12:21

----------------------------
EXCEPTION (예외)
----------------------------

-- 경미한 오류의 일종
-- 실행 오류의 하위 카테고리
-- 예외 발생 시 전체 프로그램의 Runtime이 유지되도록 처리하는 작업을 예외처리라고 한다.

 

 

 

● 예외 발생

중간에 없는 테이블을 넣어 번개 모양 버튼을 눌러주면

 

모든 문장을 한번에 실행시키면서 테이블이 존재하지 않는다는 에러가 뜨는걸 볼 수 있다.

 

 

 

또, column 개수와 넣으려는 값이 매치가 안되면 이런 오류가 나온다.

 

 

이 두 오류를 해결하는 코드를 만들어 볼 것 이다.

 

 

 

 

● 개별 오류 받기

 

먼저 각각의 오류들을 나타내주는 코드이다.

 

call을 해주면 모든 sql 문들이 실행되며 오류까지도 실행되는 것을 볼 수 있다.

 

 

결과는 각각 이렇게 나오게 된다.

 

select * from usertbl;

 

select * from notable; 테이블 없는 오류

 

select * from buytbl;

 

insert into usertbl values(1); 값을 넣지 못하는 오류

 

select 'Result' as '끝';

 

 

 

 

 

 

다음은 한꺼번에 오류를 해결하는 방법이다.

● 모든 예외 받기

 

역시 에러까지 모두 실행되며 에러문에는 같은 에러 문장이 출력된다.

 

select * from usertbl; 

 

select * from notable;

 

select * from buytbl;

 

insert into usertbl values(1);

 

select 'Result' as '끝';

 

 

 

 

● Error_log 기록하는 테이블처리

 

 

예외가 아닌 코드문을 넣으면 error_log에 아무것도 보이지 않는다.

 

 

하지만 에러 코드문을 넣으면 에러문을 볼 수 있다.

 

call tbl_std_proc('af','홍길동','5-'); 실행시 age 값이 나오지 않고

 

 

show errors;

 

select * from tbl_std_errlog; 하면 에러 로그에 시간과 에러코드, 에러 메세지가 나오게 된다.

 

 

 

 

 

 

 

 

 

'IT수업 > 데이터베이스' 카테고리의 다른 글

it 수업 7주차 (28) TRIGGER  (0) 2024.02.08
it 수업 7주차 (26) TRANSACTION (ROLLBACK)  (1) 2024.02.08
it 수업 7주차 (25) Procedure  (1) 2024.02.07
it 수업 7주차 (24) PIVOT  (1) 2024.02.07
it 수업 7주차 (23) JSON  (0) 2024.02.05