【问题标题】:Handle SOAP exception cases with several catch blocks使用多个 catch 块处理 SOAP 异常情况
【发布时间】:2011-02-08 13:17:43
【问题描述】:

This(*) ObjectLockedException 从基于 Java 的 Web 服务返回。我想在 .NET 上捕捉到这个特定的错误。

我使用 C#。任何人都可以为下面的代码建议一种方法吗?我的意思是我怎样才能让它工作?

try{
 service.something();

}catch(ObjectLockedException exx)
{
  alert("Hey!, remove the lock");
}
catch
{
//this block is for the rest of the exceptions
}

(*)我要捕获的异常的详细解释; java.rmi.RemoteException:准备实例 QS.TYR.611 时出错; 嵌套异常是:xy.zrt.ugy.business.ObjectLockedException:无法获得 QS.TYR.611 的锁

【问题讨论】:

  • soap 故障不能保证直接映射到您的特定平台 - 我怀疑您将不得不接受字符串匹配,除非有代码或类似的代码要查找。

标签: c# java .net exception-handling


【解决方案1】:

如果你的服务中的“某事”操作有一个错误契约,那么就会有一个包含错误错误信息的详细类型。在您的服务接口中查找FaultContractAttribute。给定这种类型,T,你可以捕捉到FaultException<T>

如果没有错误合同,你必须抓住FaultException并把它拆开。

您不太可能直接捕获嵌套异常......但它最终取决于故障契约。

【讨论】:

    猜你喜欢
    • 2012-05-05
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-10-21
    • 1970-01-01
    • 2017-03-31
    相关资源
    最近更新 更多