비디오: C# 강의 Winform) 28 Exception 2 (Sample) 2024
SQL 오류의 소스를 판별하려고 시도 할 때 SQLSTATE가 00000, 00001 또는 00002 이외의 값을 보유하여 예외 조건을 나타내면 하나의 상황을 처리 할 수 있습니다
-
예외를 발생시킨 하위 프로 시저를 호출 한 상위 프로 시저로 제어를 되돌립니다.
-
WHENEVER 절을 사용하여 예외 처리 루틴으로 분기하거나 다른 조치를 수행하십시오.
- -
복합 SQL 문으로 그 자리에서 예외를 처리하십시오. 복합 SQL 문은 BEGIN과 END 키워드 사이에 삽입 된 하나 이상의 간단한 SQL 문으로 구성됩니다.
다음은 복합 명령문 예외 핸들러의 예입니다.
BEGIN DECLARE ValueOutOfRange EXCEPTION FOR SQLSTATE'73003 '; 식품에 삽입 (칼로리) 가치 (: 칼); 신호 ValueOutOfRange; MESSAGE '새로운 칼로리 값을 처리합니다. '예외 발생시 예외적 인 메시지'칼로리 범위 오류 처리 '; 그 때 다른 사람 그 때 RESIGNAL; END
하나 이상의 DECLARE 문을 사용하면 발생할 수있는 특정 SQLSTATE 값에 이름을 지정할 수 있습니다. INSERT 문은 예외가 발생할 수있는 문입니다.: cal의 값이 SMALLINT 데이터 항목의 최대 값을 초과하는 경우, SQLSTATE는 "73003"으로 설정됩니다. SIGNAL 문은 예외 조건을 신호합니다. 상위 진단 영역을 지 웁니다.
진단 영역의 RETURNED_SQLSTATE 필드를 명명 된 예외에 대한 SQLSTATE로 설정합니다. 예외가 발생하지 않은 경우 MESSAGE '새 칼로리 값 처리'문으로 표시된 일련의 명령문이 실행됩니다. 그러나 예외가 발생하면 일련의 명령문은 건너 뛰고 EXCEPTION 문이 실행됩니다. 예외가 ValueOutOfRange 예외라면, MESSAGE '칼로리 범위 처리 오류'명령문에 의해 표현 된 일련의 명령문이 실행된다. 예외가 ValueOutOfRange 예외가 아니면 RESIGNAL 문이 실행됩니다.