- 1、本文档共3页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
基于SQL Server 的Exception Handling .doc
基于SQL Server 的Exception Handling
六、SqlException 在上面一节中,我给出了一个完整的例子说明了:如何在将message定义在sys.messages中保证message的一致性和可维护性;如何在Stored procedure中使用RAISERROR将一个可预知的Error抛出;如何在Stored procedure中使用TRY/CATCH进行异常的捕捉;在Application如果处理从SQL Server抛出的Exception。实际上,SQL Server database Engine抛出、被我们的.最终捕获的SqlException,我们通过SqlException的属性可以得到Error的相关信息。下面是SqlException的属性列表:
public SqlErrorCollection Errors { get; }
public int LineNumber { get; }
public int Number { get; }
public string Procedure { get; }
public string Server { get; }
public override string Source { get; }
public byte State { get; }
有了前面的内容作铺垫,相信大家都知道每个属性分别表示的什么了吧。为了使大家对
stored procedure的Error和ADO.捕获的Error的Mapping有一个更加清晰的认识。我们来写一个Sample,我们沿用Create User的例子: 在stored procedure中,遇到重名通过RAISERROR抛出异常[在整篇文章中,使用到Error和Exception,大家可以看成是等效的]:
Error Number:50001
Severity:16
State:1
Message:This user is already existent
我们来修正一下CreateUser方法:
public static bool CreateUser(string userName)
{
string procedureName = P_USERS_I;
Dictionarylt;string, objectgt; parameters = neeters.Add(user_id, Guid.Neeters.Add(user_name, userName);
try
{
Executemand(procedureName, parameters);
return true;
}
catch (SqlException ex)
{
Console.essaget: {0}, ex.Message);
Console.ain()中调用这个CreateUser():
在这里我想特别说明一下SqlException.Number这个属性,它代表Database中的Error number[或者是ERROR、imessage_id],不过当我们使用RAISERROR语句,如果我们指定的一个表示error message的字符串,ADO.捕获的SqlException.Number这个属性默认为50000。比如我们将Error number换成error message:
SET error_message = ERROR_MESSAGE()
SET error_serverity =ERROR_SEVERITY()
SET error_state = ERROR_STATE()
RAISERROR(error_message, error_serverity,error_state)
将会得到这样的结果:
12下一页 这篇文章来自..,。
还有一点需要特别提醒得是,我们可以在调用RAISERROR加了一个essage 上面的所以内容都围绕一个Exception handling的主题,在文章最后一部分我们想想一个和非Exception handling但是又和上面的内容很相关的主题:在Database通过Print语句输出的Message如何向Application传递。
在上面的例子中,有一个P_CLEAR_DATA的stored procedure,用于数据的清理。在操作结束后,有
您可能关注的文档
- 国产吻合器改良PPH术治疗重度痔病效果分析.doc
- 国产商业电影以喜剧作为符号的可行性思考.doc
- 国产盐酸替罗非班注射液在急性冠脉综合征的应用.doc
- 国人肱骨形态学三维CT分析.doc
- 国人近视人群角膜前表面散光与眼球散光的定量分析.doc
- 国企问题根源是提拔制而非产权.doc
- 国内中小企业人力资源竞争现状分析.doc
- 国内中药注射剂不良反应情况分析.doc
- 国内人力资源管理理念研究述评.doc
- 国内企业如何建立供应链联盟战略.doc
- 4.1 陆地水体及其关系 课件高二上学期地理中图版(2019)选择性必修一.pptx
- 混凝土结构与砌体结构设计习题集 .pdf
- 统编版语文四年级下册 22.古诗三首 课件(共50张PPT).pptx
- 青海2024行测笔试真题及答案 .pdf
- 2.1 充分发挥市场在资源配置中的决定性作用 课件-高中政治统编版必修二经济与社会.pptx
- 27.巨人的花园 课件(共58张PPT).pptx
- 统编版语文一年级下册5 树和喜鹊 第1课时 课件(共37张PPT).pptx
- 2.1 充分发挥市场在资源配置中的决定性作用 课件政治一轮复习统编版必修二经济与社会.pptx
- 贵港市平南县2024届小升初考试语文试卷含答案 .pdf
- 小学期末考试质量分析 .pdf
最近下载
- 2025年高考地理二轮复习非选择题强化训练(课件).pptx VIP
- (二模)2025年广州市普通高中毕业班综合测试(二)数学试卷(含答案详解).pdf
- 14J938 抗爆、泄爆图集标准.docx VIP
- 降低CRRT治疗非计划下机率.pptx VIP
- 《中国心力衰竭诊断和治疗指南2024》解读(下).pptx
- 《预检分诊》课件.pptx VIP
- 2024年河南省政务服务办事员职业技能竞赛考试题库-下(判断、简答题汇总).docx
- 2025年部编版语文六年级毕业复习知识点.pdf VIP
- 2025年政务服务办事员技能大赛理论考试题库600题(含答案).docx
- 14J938抗爆泄爆图集标准.docx VIP
文档评论(0)