Perché gli errori di annidamento o piggybacking all'interno degli errori sono in generale cattivi?
A me sembra male intuitivamente, ma sono sospettoso in quanto non riesco ad articolare adeguatamente il motivo per cui è male. Questo può essere perché non è in generale cattivo e che è solo cattivo in casi specifici. Perché è dannoso progettare la gestione degli errori / delle eccezioni in questo modo.
L'istanza specifica è quella di un servizio REST. Alcuni desiderano utilizzare gli errori http (in particolare la risposta 500) come un modo per indicare qualsiasi problema con istanze specifiche di una risorsa. Un esempio di una risorsa di istanza in questo caso sarebbe:
http://server/ticket/80 # instance http://server/ticket # not an instance
Quindi questo è il comportamento che viene proposto.
- Se
ticket 80
non esiste, restituisci un codice di risposta http di500
. All'interno del corpo dell'errore restituisce l'errore "reale" come ulteriore codice di errore e descrizione. - Se la risorsa
ticket
non esiste, restituisce un codice di risposta 404.