I suggest that you convert ThrowSpecificFault(ex)
to throw SpecificFault(ex)
; the SpecificFault
method would return the exception object to be thrown rather than throwing it itself. Much cleaner.
This is the pattern recommended by Microsoft’s guidelines.