Consideriamo il seguente codice C # come esempio:
public static string GetCurentExecutableDirectory()
{
return System.IO.Path.GetFullPath(
System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase);
}
Secondo la documentazione, System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase
non può generare eccezioni, quindi possiamo supporre che questa parte sia affidabile. Ma la parte System.IO.Path.GetFullPath
può generare alcune eccezioni in base alla documentazione .
So che il codice funziona bene il 99,99% delle volte, ma se l'esecuzione è critica, sono un po 'confuso. Da un lato, non voglio andare in crash anche se in qualche modo System.Reflection.Assembly.GetExecutingAssembly().GetName().CodeBase
restituisce qualcosa che forzerebbe System.IO.Path.GetFullPath
ad aumentare un'eccezione. D'altra parte, non sono sicuro che controllare le cose che dovrebbero essere evidenti ha molto senso. (E dato che questa situazione di esempio non ha senso, la gestione è piuttosto delicata).
Quanto sopra è solo un esempio e la mia domanda dovrebbe essere considerata in senso generale
In poche parole
In una parte critica del codice, dovrebbero essere gestite eccezioni che descrivono una situazione che non ha senso?