Le eccezioni vanno sempre gestite?
Secondo me, non sempre. Il perché è presto detto:
- Perché non tutti i progetti sono uguali: un progetto che deve essere usato
da un programmatore, per esempio, potrebbe non gestire alcune eccezioni, o
semplicemente mostrare un messaggio di avvenuta eccezione
- Perché finché si è in fase di sviluppo o test, si potrebbero non
considerare casi "specifici" oppure non accorgersi di certi errori finché non
è troppo tardi(penso ad esempio ai casi non troppo comuni ma nemmeno da
probabilità 1 su 1 miliardo )
Cosa fare però nel codice di gestione, quando abbiamo deciso che un pezzo di
codice va "protetto"? Ecco, anche qui, le mie idee "variano" rispetto alla
media, penso. Lo dico perché io credo fermamente nel fatto che se capita
un'eccezione in un blocco di codice, nel codice di gestione ne vada sollevata
un'altra. Di proposito. Si, capito bene . Di proposito, sollevare una nuova eccezione.
Immagino le facce, quindi vedo di spiegarmi: supponiamo che la nostra
applicazione si connetta ad un database(si, lo so, l'esempio è originalissimo
). Qualora succeda "qualcosa" che genera
un'eccezione(server spento, ad esempio), cosa dovrebbe vedere l'utente? Secondo
me dovrebbe vedere che l'applicazione $MI_CONNETTO_AL_DATABASE non riesce a
collegarsi al DB, ma questo non vuol dire che debba sapere che la connessione è
fallita. Quindi si gestisce l'eccezione della connessione, per poi sollevarne
una "personalizzata" che verrà gestita - a sua volta - e mostrerà qualcosa
all'utente finale.
So che può sembrare un modo strano di programmare, ma ha un suo scopo,
specialmente se questo discorso lo si vede in termini di WebServices. In questo
contesto specifico, secondo me, le eccezioni personalizzate sono ancora
più importanti rispetto al resto delle applicazioni, cui comunque
questo tipo di programmazione si può applicare.
Ultima cosa, a questo riguardo: le eccezioni personalizzate possono,
ovviamente, anche portare ulteriori dati personalizzati,
elaborati al momento della gestione delle eccezioni, rendendo dunque
possibile anche prendere "contromisure" oppure informare l'utente in modo più
corretto ed esaustivo.
Ultimissima cosa, giurin giurello, poi chiudo : potrebbe essere interessante sviluppare(se non c'è
già negli Application Blocks di MS, ma anche se c'è... ) un framework opensorcio per la
visualizzazione delle eccezioni... qualche interessato?
Mi piacerebbe molto sapere cosa ne pensate voi sia delle eccezioni che del
progetto.
Ciao,
Andrea