Nei vecchi tempi, prima dell'invenzione delle eccezioni, la cosa più dolorosa della codifica era quella di interrompere il tuo programma dal continuare ciecamente dopo aver fallito qualche chiamata API. Dovevi controllare ogni singolo risultato di chiamata di funzione per essere NULL
, -1
o qualsiasi cosa il progettista abbia scelto come suo segnale di errore, e quindi per tornare dalla tua funzione al valore di segnalazione di errore. Cose come questa (ad esempio in C):
FILE *fp = fopen(...);
if (fp == NULL) {
return -1;
}
Una linea di codice produttiva, tre brutti, quelli standard.
Quando si usano le eccezioni, questo è gratuito. Quindi, laddove tecnicamente possibile, utilizzare le eccezioni per segnalare i guasti (ma non tutto è un fallimento, ad esempio quando si cerca una sottostringa in una stringa, non trovandola non si dovrebbe lanciare come è normale). Senza eccezioni, stai forzando i tuoi colleghi in questo brutto stile di codifica.
E inserisci le informazioni sull'errore nell'oggetto eccezione, se non è incluso automaticamente, ad es. il nome del file quando si tenta di aprire un file, quindi il sysadmin che legge il log sa dove cercare il problema.
Quando si utilizzano i servizi REST, consiglierei di includere i codici di errore nelle eccezioni se la libreria REST non lo fa già.