Le eccezioni vanno sempre gestite? Secondo me, non sempre. Il perché è presto detto:

  1. 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
  2. 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

powered by IMHO 1.2