zoukankan      html  css  js  c++  java
  • SQL Server 中使用 Try Catch 处理异常

     1 CREATE TABLE ErrorLog(
     2 errNum INT,
     3 ErrSev NVARCHAR(1000),
     4 ErrState INT,
     5 ErrProc NVARCHAR(1000),
     6 ErrLine INT,
     7 ErrMsg NVARCHAR(2000)
     8 )
     9 
    10 CREATE PROCEDURE ProcErrorLog
    11 AS 
    12 BEGIN
    13      SELECT 
    14         ERROR_NUMBER() AS ErrNum,--返回导致运行 CATCH 块的错误消息的错误号。
    15         ERROR_SEVERITY()AS ErrSev,--返回导致 CATCH 块运行的错误消息的严重级别
    16         ERROR_STATE() AS ErrState,--返回导致 CATCH 块运行的错误消息的状态号
    17         ERROR_PROCEDURE() AS ErrProc,--返回出现错误的存储过程名称
    18         ERROR_LINE()AS ErrLine,--返回发生错误的行号
    19         ERROR_MESSAGE()AS ErrMsg--返回导致 CATCH 块运行的错误消息的完整文本 
    20      INSERT INTO ErrorLog VALUES(
    21         ERROR_NUMBER(),
    22         ERROR_SEVERITY(),
    23         ERROR_STATE(),
    24         ERROR_PROCEDURE(),
    25         ERROR_LINE(),
    26     ERROR_MESSAGE())
    27 END
    28 
    29 CREATE PROCEDURE TestErrorLog
    30 AS
    31 BEGIN
    32     BEGIN TRY 
    33         SELECT GETDATE() 
    34         SELECT 1/0--Evergreen divide by zero example! 
    35     END TRY 
    36     BEGIN CATCH 
    37         SELECT 'There was an error! ' + ERROR_MESSAGE() 
    38         ProcErrorLog --调用上面的存储过程,保存错误日志
    39         RETURN  
    40     END CATCH; 
    41 END
  • 相关阅读:
    牛客网分糖果
    【bzoj3717】[PA2014]Pakowanie 状压dp
    【bzoj1042】[HAOI2008]硬币购物 背包dp+容斥原理
    [POI2007]堆积木Klo
    【bzoj5018】[Snoi2017]英雄联盟 背包dp
    BZOJ 1492 [NOI2007]
    bzoj 2741 [FOTILE模拟赛] L
    bzoj 1486 最小圈
    计数
    cf 700
  • 原文地址:https://www.cnblogs.com/ziranquliu/p/5458284.html
Copyright © 2011-2022 走看看