Web服务是一种完成分布式计算的相关新方法。在分布式计算中,应用程序被设计为服务运行在服务器上。客户端通过一个可编程的接口访问这些服务。当在Web服务的执行期间发生了异常,Web服务应该不只是捕捉到异常,还应该把异常传回给Web服务的客户端。因为Web服务提供一种平台无关的方法来支持特定功能,所以Web服务中发生的异常也必须以一种平台无关的方式被传回。为了达到这个目的,必须确保Web服务所产生的异常兼容SOAP规范。本文中,我们将了解怎样使用SoapException对象从Web服务中抛出异常,而SoapException对象提供了一种表示SOAP Fault的工业标准方法。我们还将了解怎样在Web服务的客户端应用程序中处理这个异常。
简介
异常是正在执行的程序所遇到的任何错误情形或者意外行为。很多原因都可以引起异常,例如,代码中错误、操作系统资源不可用、公共语言运行时(common language runtime)中的意外情况等等。然而应用程序能够从上述的一些情况中恢复执行,但是大多数运行时异常是不可恢复的。在这种情况下,需要一种有效的方法来处理这些异常并给调用者提供相同的异常。
用结构化的异常处理方法来处理异常
在.NET Web服务中,对异常处理支持的关键点是由try...catch..finally语句提供的。关键字try放在可能抛出异常的普通处理代码块之前。关键字catch放在异常处理代码块之前。关键字finally放在那些经常在异常处理后还需要执行的代码块之前。一旦异常从try代码块中抛出,程序流切换到后面的第一个catch代码块。一套设计良好的错误处理代码块可以成功的使程序变得更加健壮,使程序崩溃的机率变得更小,那是因为应用程序处理像这样的错误所采取的方法的缘故。处理异常的最好实践可以总结如下:
经常用try/finally块包围潜在的可能发生错误的代码,并且把catch语句集中在一个地方。用这种方法,try语句抛出异常,finally语句关闭或释放资源,而catch语句则集中处理异常。
通常,catch语句块从非常特殊到一般来排列异常。这个技巧使得异常被传递到一般catch块之前先处理特殊异常。
大多数情况下,使用已有的异常类型。新的异常类型应该仅在有计划的情形下引进。
使用异常的构建方法。一个类的实现中在不同地方抛出同一个异常,这是非常普遍的现象。为了避免出现过量的这类代码,使用助手方法创建异常和返回异常。
至此,我们已经大致了解处理异常的最好实践,下面就让我们看看怎样从Web服务中抛出异常。
从Web服务中抛出异常
在Web服务中处理异常与在Web或Windows应用程序中处理异常没有什么区别。但是,在设计Web服务中的异常块时,必须明白一个事实,即你需要以一种平台无关的基于SOAP规范的方式把异常信息传递给Web服务的客户端。为了达到这个目的,你应该使用SoapException类,它抽象了SOAP Fault创建过程的复杂度。SoapException类具有下列属性,并且这些属性必须在把异常抛出给客户端之前被设定。
Message--异常的内容
Code--指定Fault编码类型(例如,ClientFaultCode和ServerFaultCode)的枚举常量
Actor--发生异常的Web服务方法的URL
Detail--Detail元素可以用来把更多的异常信息传递给调用者。
相关视频
相关阅读 Windows错误代码大全 Windows错误代码查询激活windows有什么用Mac QQ和Windows QQ聊天记录怎么合并 Mac QQ和Windows QQ聊天记录Windows 10自动更新怎么关闭 如何关闭Windows 10自动更新windows 10 rs4快速预览版17017下载错误问题Win10秋季创意者更新16291更新了什么 win10 16291更新内容windows10秋季创意者更新时间 windows10秋季创意者更新内容kb3150513补丁更新了什么 Windows 10补丁kb3150513是什么
热门文章 360快剪辑怎么使用 36金山词霸如何屏幕取词百度收购PPS已敲定!3
最新文章
微信3.6.0测试版更新了微信支付漏洞会造成哪
360快剪辑怎么使用 360快剪辑软件使用方法介酷骑单车是什么 酷骑单车有什么用Apple pay与支付宝有什么区别 Apple pay与贝贝特卖是正品吗 贝贝特卖网可靠吗
人气排行 xp系统停止服务怎么办?xp系统升级win7系统方电脑闹钟怎么设置 win7电脑闹钟怎么设置office2013安装教程图解:手把手教你安装与qq影音闪退怎么办 QQ影音闪退解决方法VeryCD镜像网站逐个数,电驴资料库全集同步推是什么?同步推使用方法介绍QQ2012什么时候出 最新版下载EDiary——一款好用的电子日记本
查看所有0条评论>>