3 Web服务中的异常处理( 二 )


//AppendtheErrorchildelementnodestotherootdetailnode.
errorNode.AppendChild(errorNumberNode);
errorNode.AppendChild(errorMessageNode);
errorNode.AppendChild(errorSourceNode);
//AppendtheDetailnodetotherootnode
rootNode.AppendChild(errorNode);
//Constructtheexception
SoapExceptionsoapEx=newSoapException(errorMessage,
faultCodeLocation,uri,
rootNode);
//Raisetheexceptionbacktothecaller
returnsoapEx;
}
【3 Web服务中的异常处理】正如其名所提示的那样 , RaiseException方法用于以SoapException对象的形式抛出Web服务中的异常 。上面所示代码首先检查包含在FaultCode中的枚举参数的值 , 而该枚举参数用来标识异常发生的源头 。如果是因为服务器端的问题(例如 , 数据库服务器已经关闭)而发生异常 , 那么应该设置FaultCode的值为SoapException.ServerFaultCode 。接着 , RaiseException方法创建一个XmlDocument对象来保存detail元素的内容 。该对象添加detail元素下的所有子元素 , 然后把detail节点传递给SoapException对象的构造函数 。最后 , 方法用return语句把SoapException对象返回给调用者 。如果你检查SoapException对象内部的detail元素 , 你会发现它与下面内容有点类似 。

推荐阅读