zoukankan      html  css  js  c++  java
  • sql server 2005中新增加的try catch学习

    sql server 2005中新增加的try catch,可以很容易捕捉异常了,今天大概学习看了下,归纳下要点如下 需要什么来搜一搜吧so.bitsCN.com

    基本用法BEGIN TRY
    { sql_statement |
    statement_block }
    END TRY
    BEGIN CATCH
    { sql_statement |
    statement_block }
    END CATCH
    ,和普通语言的异常处理用法差不多,但要注意的是,SQL SERVER只捕捉那些不是严重的异常,当比如数据库不能连接等这类异常时,是不能捕捉的一个例子:BEGIN TRY
    DECLARE @X INT
    -- Divide by zero to generate Error
    SET @X = 1/0
    PRINT 'Command after error in TRY block'
    END TRY
    BEGIN CATCH
    PRINT 'Error Detected'
    END CATCH
    PRINT 'Command after TRY/CATCH blocks'
    另外try catch可以嵌套Begin TRY
    delete from GrandParent where Name = 'John Smith'
    print 'GrandParent deleted successfully'
    End Try
    Begin Catch
    Print 'Error Deleting GrandParent Record'
    Begin Try
    delete from Parent where GrandParentID =
    (select distinct ID from GrandParent where Name = 'John Smith')
    Print 'Parent Deleted Successfully'
    End Try
    Begin Catch
    print 'Error Deleting Parent'
    Begin Try play.bitsCN.com累了吗玩一下吧
    delete from child where ParentId =
    (select distinct ID from Parent where GrandParentID =
    (select distinct ID from GrandParent where Name = 'John Smith'))
    print 'Child Deleted Successfully'
    End Try
    Begin Catch
    Print 'Error Deleting Child'
    End Catch
    End Catch
    End Catch
    另外,SQL SERVER 2005在异常机制中,提供了error类的方法方便调试,现摘抄如下,比较简单,不予以解释ERROR_NUMBER(): Returns a number associated with the error.ERROR_SEVERITY(): Returns the severity of the error.ERROR_STATE(): Returns the error state number associated with the error.ERROR_PROCEDURE(): Returns the name of the stored procedure or trigger in which the error occurred.ERROR_LINE(): Returns the line number inside the failing routine that caused the error. ERROR_MESSAGE(): Returns the complete text of the error message. The text includes the values supplied for any substitutable parameters, such as lengths, object names, or times. 最后举例子如下,使用了error类的方法BEGIN TRY

    feedom.net关注网管是我们的使命


    DECLARE @X INT
    -- Divide by zero to generate Error
    SET @X = 1/0
    PRINT 'Command after error in TRY block'
    END TRY
    BEGIN CATCH
    PRINT 'Error Detected'
    SELECT ERROR_NUMBER() ERNumber,
    ERROR_SEVERITY() Error_Severity,
    ERROR_STATE() Error_State,
    ERROR_PROCEDURE() Error_Procedure,
    ERROR_LINE() Error_Line,
    ERROR_MESSAGE() Error_Message
    END CATCH
    PRINT 'Command after TRY/CATCH blocks'
    最后输出Error Detected
    Err_Num Err_Sev Err_State Err_Proc Err_Line Err_Msg
    ------- ------- --------- -------------------- --------- --------------------------------

  • 相关阅读:
    再提一个建议,不过就要辛苦dudu了
    项目中的小项目实现在望
    Visual Studio.Net 技术Tip
    IQueryable与foreach的困惑?
    [转贴]浅析大型网站的架构
    [原创]WCF入门级使用教程(转载请注明出处)
    [原创]在msmq3.0中使用http协议发送消息
    [转贴][WCF Security] 4. 用户名/密码身份验证
    [转贴][WCF Security] 1. 基本概念
    [转]在SQL Server2005中进行错误捕捉
  • 原文地址:https://www.cnblogs.com/zhangzheny/p/975817.html
Copyright © 2011-2022 走看看