Ricerca di suggerimenti/best practice sulla gestione dei codici di errore e dei messaggi in applicazioni multilivello. Specificamente cose come:Approcci per la gestione dei codici di errore/dei messaggi in .NET
- Dove devono essere definiti i codici di errore? Enum? Classe?
- Come vengono associati i messaggi di errore o ulteriori dettagli ai codici di errore? file di risorse? attributi su valori enum, ecc.?
- Se si dispone di un'applicazione multilivello composta da DAL, BLL, UI e progetti comuni, ad esempio, dovrebbe esserci un unico elenco gigante di codici per tutti i livelli o i codici sono estendibili per progetto/livello?
Aggiornamento: importante ricordare che non riesco a fare affidamento esclusivamente sulle eccezioni e tipi di eccezione personalizzata per la segnalazione degli errori, come alcuni clienti per questa applicazione sarà tramite servizi Web (SOAP & REST)
Qualsiasi suggerimento benvenuto!
Grazie per l'input. Ho aggiornato la domanda originale per ricordare che non posso fare affidamento esclusivamente sulle eccezioni, poiché alcuni client saranno tramite servizi Web e specificamente i servizi web REST che non hanno il concetto di "tipi di eccezioni". Guardare alcune delle API di Internet (Facebook, Flickr, ecc.) Mi porta a credere che i codici di errore in questo utilizzo siano la strada da seguire. – WayneC
@WayneC: i servizi Web SOAP hanno accesso agli errori SOAP. Peccato che REST richieda di tornare ai primi anni '90. –
@John: Stai dicendo che le API REST sono i "primi anni 90"? Qualcuno dovrebbe dire a Facebook, Flickr, Netflix, Twitter, Google, ecc. Che dovrebbero essere al passo coi tempi! :-) Anche con l'approccio di eccezione, i codici di errore possono ancora essere utili per categorizzare ulteriormente un'eccezione. Ad esempio, se si dispone di una ValidationException personalizzata, è possibile avere codici di errore per dettagliare il tipo di convalida non riuscita anziché creare un nuovo tipo di eccezione personalizzato per ogni scenario di convalida. – WayneC