Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1241524
  • 博文数量: 510
  • 博客积分: 20296
  • 博客等级: 上将
  • 技术积分: 4680
  • 用 户 组: 普通用户
  • 注册时间: 2007-10-30 03:58
文章存档

2011年(13)

2010年(92)

2009年(242)

2008年(163)

我的朋友

分类: 数据库开发技术

2010-08-21 14:09:52

用处:提供和C#一样的错误处理机制,不过没有finally块.try catch可以嵌套使用.如果错误被catch中处理过,后面的语句去继续运行.

语法:

  1. begin try
  2. ...
  3. end try
  4. begin catch
  5. ...
  6. end catch

简单示例:

  1. begin try
  2.     begin try
  3.         exec sp_executesql N'select * from tables'
  4.     end try
  5.     begin catch
  6.         print 'execute sql error'
  7.     end catch

  8.     insert into Region(RegionID, RegionDescription)
  9.         values (1, 'xxx')


  10.     --select 1/0
  11. end try

  12. begin catch
  13.      select
  14.         error_number() as errornumber,
  15.         error_severity() as errorseverity,
  16.         error_state() as errorstate,
  17.         error_procedure() as errorprocedure,
  18.         error_line() as errorline,
  19.         error_message() as errormessage;

  20. end catch

    注意error相关的函数要放在catch的第一行使用.

    在catch中可以使用raiserror函数,将错误通知调用的应用程序,如ADO.NET

  1. begin try
  2.     exec sp_executesql N'select * from tables'
  3. end try
  4. begin catch
  5.     print 'execute sql error'
  6.     raiserror 130001 'error message return to caller application'
  7. end catch

阅读(715) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~