We had a web service with the folloiwng style of functions:
VB Code:
Public Function AllUsersForPip(ByVal PipKey As Integer, ByRef ErrorEnum As enmCustomErrors) As DataSet
Try
ErrorEnum = enmCustomErrors.Success
Return m_ApplesWS.AllUsersForPip(PipKey)
Catch
ErrorEnum = enmCustomErrors.SessionTimeout
End Try
End Function
I changed this to:
VB Code:
Public Function AllUsersForPip(ByVal PipKey As Integer) As DataSet
Return m_ApplesWS.AllUsersForPip(PipKey)
End Function
Much simpler...if the session is timed out then a custom exception is raised from within m_ApplesWS.
We had over 50 functions that all did this....POINTLESS!
All err info was lost as regardless of the error no info got passed back to the UI from the web service 
I have now removed all these daft error enums from functions, and other developers here are not happy coz they wrote it a few weeks ago. Oooops.
Well not my fault it was wrong 
Woka