WCF Exception Handling

WCF introduces new exception handling concepts to address the differences between traditional component-oriented systems and SOA. While traditional component-oriented systems can share native types for exception reporting and handling, this does not work across service boundaries. Exceptions are serialized as SOAP faults between clients and services. The service model can handle this automatically by converting exceptions into faults, or faults can be explicitly created using new CLR types introduced with WCF for this purpose.

In this section, I’ll introduce the concept of fault exceptions and then provide a high-level explanation of the way services and clients deal with exceptions and faults.

Fault Exceptions

WCF introduces several new exception types, most of which derive from a common base type, CommunicationException. Among the types that inherit CommunicationException, FaultException is the most important. Both types are from the System.ServiceModel namespace.

Not surprisingly, FaultException properties are closely related to the SOAP fault— they are Action, Code, and Reason. In addition, FaultException provides access to the entire message associated with the SOAP fault through its Message property. It is through this property that the detail element of the fault can be retrieved, for example.

There is also a generic version of the FaultException: FaultException<T>. This type provides strongly typed access to the detail element of the fault through its ...

Get Learning WCF now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.