C# /. Net non ha eccezioni controllate, hanno dimostrato di essere meno utile nei sistemi su larga scala di primo pensiero. In molti progetti il tempo per mantenere le specifiche delle eccezioni di controllo era molto più grande del tempo di debug salvato da averli.
Le eccezioni controllate sembrano un buon ideale finché non si hanno metodi che possono assumere delegati o chiamate nell'oggetto che si inoltra. In un caso semplice, il metodo Sort() in un elenco non può sapere quali eccezioni genererà, dato che non sa quali eccezioni verrà lanciato il metodo Compar() sugli oggetti ordinati.
Quindi la specifica per le eccezioni che un metodo può lanciare deve essere in grado di includere informazioni sul modo in cui le eccezioni vengono popolate dal passaggio in oggetti e delegati. Nessuno sa come farlo!
Tuttavia ci sono strumenti da controllare se si stanno rilevando tutte le eccezioni - vedere Exception Hunter di Red Gate. Personalmente non vedo molto valore in questi strumenti, tuttavia se ti piacciono le eccezioni controllate potresti trovarle utili.
fonte
2010-11-03 15:11:31
Immagino che la versione del framework .NET può fare la differenza qui, ma nelle versioni che uso la risposta è: a documentare bene potenziali eccezioni, e non - non c'è modo di forzare il tipo di eccezione generata (a corto di intrappolando tutte le eccezioni all'esterno e reinserendole nel tipo preferito). Non sono solo le eccezioni che potresti generare in-method, ma anche le bolle che stai lasciando. – Rudu