Ultimamente sto scrivendo in C # 4.0 ultimamente e sto cercando di scrivere il più magra possibile. Di conseguenza, non ho utilizzato i classici blocchi try/catch
e using
come spesso.
Capisco la funzione generale della garbage collection e della gestione delle eccezioni di .Net - Voglio il mio codice a prova di proiettile ed essere efficiente con gli oggetti, ma sto cercando di ottenere questo con la quantità minima di 'codice aggiuntivo' (dal momento che 'bloat' ha fatto incazzare la gente).
Per essere chiari, capisco che using()
è fondamentale per rinunciare alle risorse per maniglie e altro codice e alla sua relazione all'interfaccia IDisposable
.
Ma sto cercando di capire meglio quanto dovrebbe essere assertivo un programmatore negli oggetti di gestione delle eccezioni.
Ci sono posti chiave nel codice che diresti try/catch
blocchi e / o using
istruzioni sono indubbiamente necessarie? All'interno dei contesti della garbage collection e della gestione delle eccezioni, quali oggetti / scenari di uso comune consiglieresti esplicitamente?
Dovresti semplicemente creare un blocco catch per ogni possibile eccezione che un oggetto potrebbe attraversare? Quanto dovrebbero essere annidati? Ci sono dei passaggi che posso fare per raccogliere in modo proattivo i rifiuti (ad esempio, per contrastare l'esempio nei commenti di aspettare che Dispose()
venga chiamato)?