[SQL2005][SQL] TRY..CATCH 사용의 목적
[정보]
이전 방식의 저장프로시져 예외 처리 BEGIN TRANSACTION INSERT Funds VALUES (10) INSERT Funds VALUES (-1) IF(@@ERROR <>0) ROLLBACK TRANSACTION ELSE COMMIT TRANSACTION
TRY..CATCH를 사용한 예외 처리
BEGIN TRY BEGIN TRANSACTION INSERT Funds VALUES (10) INSERT Funds VALUES (-1) COMMIT TRANSACTION END TRY BEGIN CATCH ROLLBACK END CATCH
BEGIN TRY..BEGIN CATCH를 사용의 장점.
TRY...CATCH 문을 사용하면 좋은 점은, CATCH 문 내에서 예외에 대응하는 적절한 처리를 추가적으로 할 수 있으며, CATCH 문 내의 예외는 어플리케이션 계층으로 (자동으로) 전달되어 지지 않는다. 어플리케이션 계층으로 예외를 전달해야 할 경우는 RAISEERROR를 사용해서 명시적으로 전달해야 한다. 이전 방식에서는 예외 발생시 어플리케이션 계층으로 자동전달되어 지므로 이를 전달하지 않으면서 대응하는 코드를 작성하기가 불가능하다. |