Programmazione.it v6.4
Ciao, per farti riconoscere devi fare il login. Non ti sei ancora iscritto? Che aspetti, registrati adesso!
Info Pubblicità Collabora Autori Sottoscrizioni Preferiti Bozze Scheda personale Privacy Archivio Libri Corsi per principianti Forum
Forum :: Programmazione.it :: Software :: Uso e/o abuso delle eccezioni
Scritto da mrcod il 06-07-2006 ore 15:33
Cosa è un'eccezione? E quando è il caso di utilizzarle?

Sto riscrivendo nel poco tempo libero che ho a disposizione un'applicazione ASP.NET, dopo averla convertita da VB.NET a C# .. ma non sono soddisfatto dal codice...

Ciò che non mi soddisfa è l'enorme quantità di blocchi try/catch per le eccezioni più disparate.. che spesso partono dalle classi che gestiscono l'input dell'utente, fino a occasioni in cui arrivano dentro le classi che gestiscono il database per propagarsi in maniera del tutto non gestita fino alla pagina web..

Nei vostri progetti come vi comportate con le eccezioni? La parola eccezione mi ha sempre fatto pensare ad un evento particolare.. a qualcosa di cui in ogni caso non si dovesse abusare.. ma chi ha scritto precedentemente quell'applicativo sembra essersene infischiato altissimamente.. il codice oramai è solo un insieme di try/catch..
Precedente: generazioni di thread
Successiva: java servlet programming in italiano
Intervento di Filippo Fadda a.k.a. dedalo del 06-07-2006 ore 16:45, Capriata d'orba (AL)
Duca
Duca

(1961 interventi)
Iscritto il 03-04-2001
Prima o poi su questa cosa ci scriverò un articolo. Il problema non è tanto la presenza, quanto il fatto che la maggior parte dei linguaggi, C# compreso, non obbligano il programmatore a gestirle. Ricordo che ad esempio in Delphi bisognava andarsi a vedere quali eccezioni generava un metodo di una classe, perché comunque il compilatore non ti obbligava (non lo fa neppure ora) a gestirle. Di fatto si finiva per non gestirne molte, lasciando il compito all'oggetto TApplication. Dunque veniva meno lo scopo per il quale le stesse sono state introdotte. Java invece ti obbliga a gestirle ed anche se l'onere è superiore, il risultato è che se non la gestisci è colpa tua e non del compilatore, che nell'obbligarti a prenderla in considerazione ha fatto il suo dovere. Da questo punto di vista (e non solo da questo) C# lascia molto a desiderare.
L'altro problema è che i sistemi operativi usano delle librerie di funzioni, le classiche DLL nel caso di Windows, che sono librerie di funzioni e non di oggetti, pertanto i vari ambienti di sviluppo spesso non fanno altro che incapsularle in classi e ritornare delle eccezioni, che magari non sono neppure in grado di gestire tutti i valori di ritorno delle funzioni che incorporano. Ed anche questo lo trovo paradossale.
Intervento di Pierpaolo Cira a.k.a. pierpaoloc del 07-07-2006 ore 10:22
Marchese
Marchese

(1372 interventi)
Iscritto il 17-01-2006
Credo che il termine "eccezione" non vada inteso come qualcosa di eccezionale che è difficile che accada... più che altro lo intenderei come un evento inaspettao che renderebbe non valido il nostro set di istruzioni.
In linguaggi come Java le eccezioni devono essere tutte gestite... nel mio caso personale con un UML d'avanti agli occhi (o un diagramma delle classi in testa) gestisco le eccezioni direttamente nel metodo, oppure le "throwo" al piano superiore in base alla logica dell'applicazione... con un poco di esperienza (e voglia di cambiare svariati metodi di codice) troverai il metodo più corretto per capire come gestirle... ;)
Copyright Programmazione.it™ 1999-2013. Alcuni diritti riservati. Testata giornalistica iscritta col n. 569 presso il Tribunale di Milano in data 14/10/2002. Pagina generata in 1.079 secondi.