Estamos construindo um serviço da Web (SOAP, .Net) que falaria com (principalmente) clientes nativos (Windows, C ++) e estamos imaginando qual é a melhor maneira de comunicar erros ao cliente (por exemplo, SomethingBadHappened, como o serviço de login não disponível ou algo como usuário não encontrado) e não conseguiu decidir entre lançar uma exceção para o cliente ou usar algum tipo de modelo de código de erro para fazer o acima.
O que você preferiria no tratamento no lado do cliente: receber um código de erro ou manipular uma exceção ServerFault que contenha o motivo do erro?
1) Por que estamos pensando em exceção: porque tornaria o código do lado do servidor muito mais uniforme
2) Por que estamos pensando em códigos de erro: Porque pensamos que faz mais sentido do ponto de vista do cliente.
Se 2) for realmente verdade, provavelmente quereríamos procurar códigos de erro do que exceções? É esse o caso aqui?
Além disso, a resposta mudaria se estivéssemos conversando com clientes gerenciados em vez de clientes nativos?