来自WCF的例外情况

时间:2010-06-02 06:56:42

标签: wcf exception-handling

可以从WCF客户端抛出哪些异常?

我通常会抓住CommunicationFaultedExceptionCommunicationExceptionTimoutException以及其他一些但有时会出现新的问题,例如最近QuotaExceededException

没有共同的基础可以捕获(除了异常),所以有人有完整的列表吗?

4 个答案:

答案 0 :(得分:2)

这可能是一个很好的起点:Expected Exceptions

答案 1 :(得分:1)

为什么会有完整的清单?这不是Java。

为什么要捕捉您不理解的异常?如果你不知道它意味着什么,你将如何“处理”它?

如果你愿意的话,继续捕捉异常以记录它们,但是你应该在捕获它之后重新抛出它们。让异常传播到一些知道如何处理它的代码。

答案 2 :(得分:0)

只是想出来......一个解决方案可能是:

  1. 在Custom异常类中添加异常列表(和异常转换);例如CException
  2. 只要在Exception块中捕获异常,就会在CException类中抛出另一个异常。例如,如下:

    catch(Exception ex){throw new CException("An error occured", ex);}

  3. 请参阅this example

答案 3 :(得分:0)

CommunicationException是所有WCF异常的基本异常。如果你抓住了它,你会抓住WCF相关的一切。

请参阅MSDN docs for CommunicationException。它还可以很好地显示所有派生类的列表,例如在WCF中可能发生的所有更具体的异常 - 相当长的列表!