1.try catch 个人理解

try catch是sql用于出错异常处理的语句块,当我们在写sql语句的时候(通常写比较复杂的存储过程时),合理使用try catch 可以将sql代码运行时的错误信息捕获,从而可以让我们

不需要处处判断便可以更加简单地处理我们所遇到的问题。

例如: 我们的过程脚本里面经常要进行除法计算  如这段代码   declare @i int=0  ,@j = 100     select @j/@i

如果有一天我们要写很复杂的计算公式,经常通过变量加减乘除我们得每次都加个判断,而有了try catch ,我们便不用加这些判断了,直接捕获即可

3.try catch使用方法如下,读者朋友可以自己到SQL 2008或2005查询分析器执行(亲测无误)

Create proc up_TestCatch1(@iStatus int output,@StatusText varchar(40) out)  
as   
begin  

select @iStatus=0,@StatusText='执行成功'
    begin try  
        begin tran  
            select 执行情况='无错时此处将执行' 
        commit tran
    end try
    
    begin catch
        rollback tran
    end catch
end

Create proc up_TestCatch2(@iStatus int output,@StatusText varchar(40) out)  
as   
begin  
declare @i int =0
select @iStatus=0,@StatusText='执行成功'
    begin try  
        begin tran  
            select @i=1/0 --此处出错
            select '出错时此处将不会执行跳过' 
        commit tran
    end try
    
    begin catch
        /*出错时才捕获*/
            select 执行情况='出错时此处将执行'
        rollback tran
    end catch
end

declare  @iStatus int ,@StatusText varchar(40) 
exec up_TestCatch1 @iStatus out ,@StatusText out 


exec up_TestCatch2 @iStatus out ,@StatusText out 

 

posted on 2017-07-15 12:33  张毅奇  阅读(1735)  评论(0编辑  收藏  举报