Domanda sulle migliori pratiche per la gestione degli errori in C #?
Nel nostro sistema scriveremo i file, e con ogni file avranno un file di errore corrispondente. Il file di errore verrà scritto ogni volta anche se non ci sono errori.
Sto guardando il modo migliore per gestire gli errori per questo. Supponendo che quando andremo a scrivere il file CSV principale, otterremmo un numero di errori. Dalle autorizzazioni sulla cartella, a un'eccezione di parsing quando si gira un Datatable in un CSV.
Se otteniamo un errore di autorizzazione, anche il file di log degli errori fallirà. Questo dovrebbe essere fatto nell'eccezione? in un altro tentativo di cattura (che sarebbe male .. penso).
Vorremmo anche ottenere l'eccezione da inserire nel file di errore.
Qualche pseudo codice qui sotto (senza il try catch nell'eccezione) o dovrebbe essere più suddiviso e utilizzare metodi, che contengono i propri Try / Catch che potrebbero far apparire i messaggi per accedere e scrivere sui file.
Message.log("begin writing file");
try {
try {
// get data from DB
// write to CSV file
// all good, write Empty Error Log file and main file
}
catch(Exception ex) {
// Write Error File with ex.toCSV
// write log message.
Message.log("error : " + ex.ToString());
}
} catch (Exception ex) {
var e = new Exception(string.Format("An unexpected error occurred for file.\r\n{0}", ex.Message));
Message.log(e);
throw e.
}
Message.log("all files written");