DB
[MSSQL] 예외,에러 처리
쑤기c
2018. 11. 29. 13:31
▼TRY..CATCH
출처&상세: TRY...CATCH(Transact-SQL)
-- TRY..CATCH 사용예
BEGIN TRY
SELECT 1/0;
END TRY
BEGIN CATCH
-- 프로시저 파라미터 사용 가능
DECLARE @ParamInfoStr varchar(1000)
= '@ResultDate='+CASE WHEN @ResultDate IS NULL THEN 'null' ELSE CONVERT(varchar(19), @ResultDate, 120) END
+', @ModelID='++CASE WHEN @ModelID IS NULL THEN 'null' ELSE CAST(@ModelID as varchar) END
-- error retrieval .
SELECT
ERROR_NUMBER() AS ErrorNumber
,ERROR_SEVERITY() AS ErrorSeverity
,ERROR_STATE() AS ErrorState
,ERROR_PROCEDURE() AS ErrorProcedure
,ERROR_LINE() AS ErrorLine
,ERROR_MESSAGE() AS ErrorMessage;
--출력
PRINT
'ERROR_NUMBER = ' + CAST(ERROR_NUMBER() AS VARCHAR)
+'ERROR_SEVERITY = ' + CAST(ERROR_SEVERITY() AS VARCHAR)
+'ERROR_STATE = ' + CAST(ERROR_STATE() AS VARCHAR)
+'ERROR_PROCEDURE = ' + ERROR_PROCEDURE()
+'ERROR_LINE = ' + CAST(ERROR_LINE() AS VARCHAR)
+'ERROR_MESSAGE = ' + ERROR_MESSAGE();
END
ErrorNumber |
ErrorSeverity |
ErrorState |
ErrorProcedure |
ErrorLine |
ErrorMessage |
8134 |
16 |
1 |
NULL |
3 |
0으로 나누기 오류가 발생했습니다. |
반응형