...More Simple More Efficient... ☞ Guest Book enSimple.net ?
Home Study Q & A Knowledge Base Free Board News

   Knowledge Base
[작성자 : chang]  1/9/2008 11:21:03 PM  에 남기신 글입니다.

제목 : [SQL2005][SQL] TRY..CATCH 사용의 목적
[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를 사용해서 명시적으로 전달해야 한다.
이전 방식에서는 예외 발생시 어플리케이션 계층으로 자동전달되어 지므로 이를 전달하지 않으면서 대응하는 코드를 작성하기가 불가능하다.
List
□ 한줄의 평 이름: