基于sql server 的exception handling

基于sql server 的exception handling

ID:9704918

大小:57.50 KB

页数:5页

时间:2018-05-05

基于sql server 的exception handling _第1页
基于sql server 的exception handling _第2页
基于sql server 的exception handling _第3页
基于sql server 的exception handling _第4页
基于sql server 的exception handling _第5页
资源描述:

《基于sql server 的exception handling 》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库

1、基于SQLServer的ExceptionHandling  六、SqlException  在上面一节中,我给出了一个完整的例子说明了:如何在将message定义在sys.messages中保证message的一致性和可维护性;如何在Storedprocedure中使用RAISERROR将一个可预知的Error抛出;如何在Storedprocedure中使用TRY/CATCH进行异常的捕捉;在Application如果处理从SQLServer抛出的Exception。实际上,SQLServerdatabaseEngine抛出、被我们的.最终捕获的SqlException,我们通过SqlE

2、xception的属性可以得到Error的相关信息。下面是SqlException的属性列表:  publicSqlErrorCollectionErrors{get;}  publicintLineNumber{get;}  publicintNumber{get;}  publicstringProcedure{get;}  publicstringServer{get;}  publicoverridestringSource{get;}  publicbyteState{get;}  有了前面的内容作铺垫,相信大家都知道每个属性分别表示的什么了吧。为了使大家对  storedpro

3、cedure的Error和ADO.捕获的Error的Mapping有一个更加清晰的认识。我们来写一个Sample,我们沿用CreateUser的例子:  在storedprocedure中,遇到重名通过RAISERROR抛出异常[在整篇文章中,使用到Error和Exception,大家可以看成是等效的]:      ErrorNumber:50001      Severity:16      State:1      Message:Thisuserisalreadyexistent  我们来修正一下CreateUser方法:publicstatic boolCreateUser(str

4、inguserName)    {      stringprocedureName=P_USERS_I;      Dictionary<string,object>parameters=neeters.Add(user_id,Guid.Neeters.Add(user_name,userName);      try      {        Executemand(procedureName,parameters);        returntrue;      }      catch(SqlExceptionex)      {        Console.es

5、saget:{0},ex.Message);        Console.ain()中调用这个CreateUser():  在这里我想特别说明一下SqlException.Number这个属性,它代表Database中的Errornumber[或者是ERROR、imessage_id],不过当我们使用RAISERROR语句,如果我们指定的一个表示errormessage的字符串,ADO.捕获的SqlException.Number这个属性默认为50000。比如我们将Errornumber换成errormessage:SETerror_message  =ERROR_MESSAGE()SE

6、Terror_serverity  =ERROR_SEVERITY()SETerror_state  =ERROR_STATE()RAISERROR(error_message,error_serverity,error_state)  将会得到这样的结果:12下一页>>>>这篇文章来自..,。  还有一点需要特别提醒得是,我们可以在调用RAISERROR加了一个essage  上面的所以内容都围绕一个Exceptionhandling的主题,在文章最后一部分我们想想一个和非Exceptionhandling但是又和上面的内容很相关的主题:在Database通过Print语句输出的Mess

7、age如何向Application传递。  在上面的例子中,有一个P_CLEAR_DATA的storedprocedure,用于数据的清理。在操作结束后,有一个Print语句(PRINT('Alldatahavebeendeleted!'))CREATEProcedureP_CLEAR_DATAAS    DELETEFROMdbo.T_USERS_IN_ROLES  DELETEFROMdbo.T_US

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。