본문 바로가기

오류처리

(2)
[Sequel Safe] 에러 핸들링 (下) ErrorHandler 레이블 에러 핸들링을 위한 루틴은 아래와 같이 레이블(Label)로 만듭니다. ErrorHandler: IF XACT_STATE() 0 ROLLBACK TRANSACTION; IF @intReturnValue IS NULL OR @intReturnValue = 0 EXEC @intReturnValue = dbo.P_AddErrorLog; RETURN @intReturnValue; ErrorHandler 레이블에서의 프로세스는... 1. 현재 트랜잭션이 열려있으나 commit할 수 없는 상태이면, 트랜잭션을 rollback 한다. 2. @intReturnValue 변수의 값이 NULL이거나 0이면, P_AddErrorLog를 호출하고 해당 SP의 리턴 값을 @intReturnValu..
[Sequel Safe] 에러 핸들링 (上) Stored Procedure에서의 에러 핸들링은 매우 중요한 주제입니다. 따라서, 에러를 핸들링하는 방법은 그 규칙을 정해 모든 개발자가 지키도록 하는 것이 바람직하다고 생각합니다. 에러 핸들링을 아예 하지 않는 것도 좋지 않고, 개발자마다 각자의 방식을 사용하는 것도 좋지 않습니다. 누군가가 이 역할을 맡아 주어야 하는데, DBA가 해주면 좋지만 여건이 되지 않는다면 이 글을 읽고 계신 여러분이 직접 해 보는 건 어떨까요? 에러에는 어떤 종류가 있을까? 간단히 분류해 본다면, 논리적 에러와 시스템 에러가 있습니다. 여기서 시스템 에러를 다시 둘로 나누면, 에러는 다음과 같이 분류할 수 있습니다. 1. 논리적 에러 로직을 처리하는 과정에서 "예외 사항"로 분류하여 실행을 중단하거나 롤백 해야 하는 상황..