I probably misunderstood your first question but I'll just explain how it works. Let's say you have an exception policy which handles two exceptions, ArgumentException and ApplicationException.
ApplicationPolicy -> ArgumentException -> LoggingExceptionHandler
-> ReplaceHandler (replace with ApplicationException)
-> ApplicationException -> LoggingExceptionHandler
-> WrapHandler (wrap in a custom exception)
If an ArgumentException is caught and you apply code so that the "ApplicationPolicy" exception policy handles that, that exception will be logged (LoggingExceptionHandler) and it will get replaced with an ApplicationException (ReplaceHandler). That's
it, procesing stops and you'll get an ApplicationException, not a custom exception. It won't try to recursively handle exceptions.
On your second question, you can catch the non-generic FaultException but then you'll still need to cast it to the specific FaultException<T> so as to be able to get the details. I'm not aware of any way to obtain the details without getting
it from the generic version of the FaultException.
Global Technologies and Solutions