TRY…CATCH 구문은 심각도가 10을 넘으며 데이터베이스 연결을 닫지 않는 모든 실행 오류를 catch합니다.
TRY 블록 다음에는 곧바로 연결된 CATCH 블록이 이어져야 합니다. END TRY와 BEGIN CATCH 문 사이에 다른 문을 포함시키면 구문 오류가 발생합니다.
TRY…CATCH 구문은 여러 일괄 처리에 걸쳐 있을 수 없으며 여러 Transact-SQL 문 블록에도 걸쳐 있을 수 없습니다. 예를 들어 하나의 TRY…CATCH 구문이 Transact-SQL 문의 BEGIN…END 블록 2개에 걸쳐 있거나 IF…ELSE 구문에 걸쳐 있을 수 없습니다.
TRY 블록의 마지막 문 실행을 완료할 때 TRY 블록으로 묶은 코드에 오류가 없는 경우 연결된 END CATCH 문 바로 다음 문으로 제어가 전달됩니다.
TRY 블록으로 묶은 코드에 오류가 있는 경우 연결된 CATCH 블록의 첫 번째 문으로 제어가 전달됩니다. CATCH 블록의 코드를 완료하면 END CATCH 문 바로 다음 문으로 제어가 전달됩니다.