WEB开发网
开发学院数据库MSSQL Server 基于SQL Server 的Exception Handling - PART I 阅读

基于SQL Server 的Exception Handling - PART I

 2008-12-06 10:15:33 来源:WEB开发网   
核心提示:对于所有的开发人员来说,Exception Handling是我们每天都要面对的事情,基于SQL Server 的Exception Handling - PART I,对于基于Source Code的Exception Handling,我想大家已经司空见惯了,所以这并不是一个随机的值,无论是10/0还是100/0,

对于所有的开发人员来说,Exception Handling是我们每天都要面对的事情。对于基于Source Code的Exception Handling,我想大家已经司空见惯了,但是对于Database级别的Exception Handling,就没有那么常见了。在这篇文章中,我将会介绍我对于基于Database编程中Exception Handling的一些粗浅的认识:在编写Stored Procedure时,如何抛出一个可预知的Exception,ADO.NET如何处理从Database抛出的Exception,如何保存基于Database Exception的Error Message,如何在Database和.NET Application之间进行消息的传递[注:这里的Database主要指SQL Server]。

@@ERROR

RAISEERROR

TRY CATCH & Return

Error message & sys.messages

ADO.NET Exception Handling

SqlException

InfoMessage

一、  @@ERROR

@@ERROR是我们经常使用的系统函数,其返回类型为INT,用以表示上一个语句的执行是否遇到错误,0便是语句正常执行,非0则以为着某个错误的产生。比如下面的一个例子:我在SQL Server Management Studio中执行下面一段简单的SQL:

DECLARE @result INT
SET @result = 10/0
PRINT @@ERROR
Go

会得到如下的执行结果:

基于SQL Server 的Exception Handling - PART I

由于除零导致错误的产生,使@@ERROR的值变成8134。实际上8134是一个Error Number,代表某个系统定义的Error,每个预定义的Error由一个唯一的Error Number来唯一标识。@@ERROR本质上就是返回上一个语句执行遇到的Error的ID号,所以这并不是一个随机的值,无论是10/0还是100/0,@@ERROR返回的结果都是一样的。

1 2 3 4  下一页

Tags:基于 SQL Server

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接