首页 > 代码库 > MSSQL之try Catch的用法通俗讲解

MSSQL之try Catch的用法通俗讲解

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 

 

MSSQL之try Catch的用法通俗讲解