예외 처리하기
슬라이드에서 문제 해결을 위해 적절한 맥락을 제공하는 방법을 살펴봤어요. 메시지를 기록할 때 종종 간과되는 부분이 바로 그 메시지의 더 깊은 이유예요. 흔히 오류가 "Bad value"나 "Invalid date"처럼 일반적으로만 표시되곤 하죠. 하지만 세부 정보와 맥락을 더해 메시지를 풍부하게 만들 수 있어요.
여기서는 A1C를 다뤄 볼게요. A1C는 적혈구의 헤모글로빈에 당이 결합된 비율을 뜻해요. 일반적으로 공복 상태 기준으로 당뇨병이 없는 경우 5.7% 미만, 당뇨병 전단계는 5.7%~6.4%, 6.5% 이상이면 관리되지 않은 당뇨병의 지표로 보는 편이에요.
이 연습은 강의의 일부입니다
PostgreSQL에서의 트랜잭션과 오류 처리
연습 안내
- 해당되는 부분에
DO와BEGIN문을 채워 트랜잭션 블록을 완성하세요. - 예외 처리에서
'a1c is typically less than 14'를errors테이블의context열에 INSERT 하도록 추가하세요. - 사용한 절차적 언어를 지정해 예외 처리를 마무리하세요.
실습형 인터랙티브 연습
이 예제를 이 샘플 코드를 완성하여 풀어보세요.
-- Add a DO function
___ $$
-- BEGIN a transaction block
___
INSERT INTO patients (a1c, glucose, fasting)
values (20, 89, TRUE);
-- Add an EXCEPTION
____
-- Catch all exception types
WHEN others THEN
INSERT INTO errors (msg, detail, ___) VALUES
(
'failed to insert',
'This a1c value is higher than clinically accepted norms.',
'___'
);
END;
-- Make sure to specify the language
____ language 'plpgsql';
-- Select all the errors recorded
SELECT * FROM errors;