Estamos construyendo un servicio web (SOAP, .Net) que estaría hablando con (en su mayoría) clientes nativos (Windows, C ++) y nos preguntamos cuál es la mejor manera de comunicarle errores al cliente (por ejemplo, SomethingBadHappened como un servicio de inicio de sesión no disponible) o algo así como el usuario no encontrado) y no he podido decidir entre lanzar una excepción al cliente o usar algún tipo de modelo de código de error para hacer lo anterior.
¿Qué preferiría en el manejo en el lado del cliente: recibir un código de error o manejar una excepción ServerFault que contiene el motivo del error?
1) ¿Por qué estamos pensando en una excepción? Porque haría que el código del lado del servidor fuera mucho más uniforme.
2) ¿Por qué estamos pensando en los códigos de error? Porque creemos que tiene más sentido desde la perspectiva del lado del cliente.
Si 2) es realmente cierto, probablemente querríamos buscar códigos de error que excepciones. ¿Es ese el caso aquí?
Además, ¿cambiaría la respuesta si estuviéramos hablando con clientes administrados en lugar de clientes nativos?