Pages: [1]   Go Down
Print
Author Topic: eccezioni convenienti  (Read 719 times)
0 Members e 1 Utente non registrato stanno visualizzando questa discussione.
Giuseppo
Apprendista Forumista
**
Offline Offline

Posts: 198



« on: 17-04-2009, 18:30:56 »

Secondo voi è "lecito" usare le eccezioni a proprio favore? Io mi sono trovato in un paio di situazioni in cui mi risparmio di scrivere codice usando le eccezioni. Supponete di voler terminare un'operazione quando in un array uscite dalla dimensione(ovviamente questo è un caso banale); potete porre un controllo del tipo i<A.length, oppure catturare l'eccezione IndexOutOfBounds, e fare un catch dove scrivete ciò che volete fare quando si verifica l'eccezione. Ovviamente questo è un caso semplice, ma lavorando con liste, puntatori a null, eccetera, le cose si complicano! che ne dite?
Logged

I have nothing to declare except my genius.
Aigor
Forumista Esperto
****
Offline Offline

Gender: Male
Posts: 1.184


"Il destino non è una catena, ma un volo."[A.B.]


« Reply #1 on: 17-04-2009, 18:38:06 »


Per buona prassi si evita di usare le eccezioni quando il programmatore può far si che non avvengano.
Si riccorre alle eccezioni più per casi ECCEZIONALI ovvero in cui il programmatore è alle strette !
Logged

"Era d'altronde uno di quegli uomini che amano assistere alla propria vita, ritenendo impropria qualsiasi ambizione a viverla.
Si sarà notato che essi osservano il loro destino nel modo in cui, i più, sono soliti osservare una giornata di pioggia." - Seta,Baricco
Giuseppo
Apprendista Forumista
**
Offline Offline

Posts: 198



« Reply #2 on: 17-04-2009, 18:38:57 »

beh....hai detto "per buona prassi"..... cry
Logged

I have nothing to declare except my genius.
ɹǝǝuıƃuǝsɹǝʌǝɹ
Administrator
God of the Forum
*****
Offline Offline

Gender: Male
Posts: 4.474


Più grande è la lotta, e più è glorioso il trionfo


WWW
« Reply #3 on: 17-04-2009, 23:26:35 »

Le eccezioni sono degli stati "anomali" in cui si viene a trovare la JVM e/o il nostro programma, ovvero indicano che qualcosa è andato storto in una certa computazione e al contempo il metodo o blocco di codice che ha riscontrato tale stato anomalo non è stato in grado automaticamente di riparare/prendere provvedimenti rispetto a tale situazione incresciosa.
Questo da un punto di vista logico.

Da un punto di vista tecnico le eccezioni vengono lanciate con una opportuna istruzione java (throw) quando chi ha scritto un certo codice ha previsto che la situazione in cui è stata lanciata andasse opportunamente evidenziata.

Quando un codice presenta situazioni che possono essere controllate da noi a priori, se noi non facciamo gli opportuni controlli stiamo costruendo un cattivo programma.

Quando, nonostante l'aver superato un corso di Programmazione 1, si insiste nel voler scrivere programmi che non controllano situazioni controllabili, si sta facendo cattiva programmazione e vuol dire che non si è capito molto di ciò che a "Programmazione 1" è stato insegnato.

Rispondendo alla tua domanda, quando scrivi un codice che cattura ad esempio l'eccezione "ArrayIndexOutOfBounds", e, sempre a titolo di esempio, in tale codice stai usando almeno due volte degli array, non puoi essere sicuro in generale di quale delle due istruzioni ha provocato l'eccezione, quindi dovrai fare un controllo dopo per capirlo. E se comunque devi fare un controllo, a questo punto ha molto più senso farlo nel posto giusto, cioè "prima" che l'eccezione venga lanciata.

Saluti  .
Logged

La grande marcia della distruzione mentale proseguirà. Tutto verrà negato. Tutto diventerà un credo. È un atteggiamento ragionevole negare l'esistenza delle pietre sulla strada; sarà un dogma religioso affermarla. È una tesi razionale pensare di vivere tutti in un sogno; sarà un esempio di saggezza mistica affermare che siamo tutti svegli. Accenderemo fuochi per testimoniare che due più due fa quattro. Sguaineremo spade per dimostrare che le foglie sono verdi in estate. Non ci resterà quindi che difendere non solo le incredibili virtù e saggezze della vita umana, ma qualcosa di ancora più incredibile: questo immenso, impossibile universo che ci guarda dritto negli occhi. Combatteremo per i prodigi visibili come se fossero invisibili. Guarderemo l'erba e i cieli impossibili con uno strano coraggio. Saremo tra coloro che hanno visto eppure hanno creduto.

In tutto, amare e servire.

  
                            ن                           
I can deal with ads,
I can deal with buffer,
but when ads buffer
I suffer...

...nutrimi, o Signore, "con il pane delle lacrime; dammi, nelle lacrime, copiosa bevanda...

   YouTube 9GAG    anobii  S  Steam T.B.o.I. Wiki [univ] Lezioni private  ʼ  Albo d'Ateneo Unicode 3.0.1
Usa "Search" prima di aprire un post - Scrivi sempre nella sezione giusta - Non spammare - Rispetta gli altri utenti - E ricorda di seguire il Regolamento
Pages: [1]   Go Up
Print
Jump to: