【问题标题】:How can I use SoapException Method on object of type Exception?如何在异常类型的对象上使用 SoapException 方法?
【发布时间】:2012-01-19 07:24:56
【问题描述】:

我有一个获取类型参数的方法 - 异常

WriteException(Exception ex, int index, string s)
{
   // my code here...
}

有时该方法会获取Exception 对象,有时会获取SoapException
每次例外都是善意的SoapException 我要打印:ex.Detail.InnerText
但如果ex 的类型为Exception
那么识别类型后,我该怎么办SoapException ex.Detail.InnerText

【问题讨论】:

  • 为什么不使用两个函数重载,一个有 Exception 参数,一个有 SoapException 参数?

标签: c# .net oop exception polymorphism


【解决方案1】:
WriteException(Exception ex, int index, string s)
{
    var soapEx = ex as SoapException;

    if(null != soapEx)
    {
      Console.WriteLine(soapEx.Detail.InnerText);
      return;
    }

    Console.WriteLine(ex.Message);

}

另一种可能的解决方案是使用dynamic 关键字:

WriteException(Exception ex, int index, string s)
{
    dynamic soapEx = ex;

    Console.WriteLine(soapEx.Detail.InnerText);
    Console.WriteLine(ex.Message);

}

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 1970-01-01
    • 2015-12-17
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多