Prova, cattura, lancia e infine dichiarazioni in Java | Spiegato

Prova, cattura, lancia e infine dichiarazioni in Java | Spiegato
In qualsiasi linguaggio di programmazione incluso Java, esiste sempre la possibilità che un errore si verifichi al momento dell'esecuzione del codice, di conseguenza, il programma smette di funzionare e lancia un errore. In termini di programmazione questo fenomeno viene definito eccezione. Java fornisce la soluzione in grado di gestire tali eccezioni/errori di runtime noti come gestione delle eccezioni.

In Java è possibile adottare diversi modi per gestire le eccezioni, in questo articolo discuteremo i seguenti modi di gestione delle eccezioni:

  • Gestione delle eccezioni utilizzando le istruzioni Try-Catch
  • Gestione delle eccezioni utilizzando finalmente l'istruzione
  • Gestione delle eccezioni usando la parola chiave di lancio

Tutti gli approcci sopra menzionati saranno discussi in questo articolo con l'aiuto di alcuni esempi. Tuttavia, prima di dirigerci verso questi approcci prima dobbiamo capire perché è necessario gestire le eccezioni in Java.

Perché la gestione delle eccezioni in Java

Nel caso in cui affrontiamo qualsiasi errore, normalmente il programma interrompe la sua esecuzione, tuttavia la gestione delle eccezioni garantisce che il flusso normale del programma non debba rompere.

Consideriamo uno scenario per la profonda comprensione della gestione delle eccezioni in Java:

Supponiamo di avere cinque dichiarazioni in un programma e l'eccezione si verifica alla terza dichiarazione, quindi un programma normale interrompe la sua esecuzione a quel punto e le restanti due dichiarazioni non eseguiranno. Tuttavia, se applichiamo una gestione delle eccezioni, il flusso normale non sarebbe interessato a.e. L'eccezione verrà mostrata solo per l'istruzione interessata e tutte le altre dichiarazioni eseguiranno correttamente.

Esempio

Consideriamo l'esempio seguente che non ha preso in considerazione il meccanismo di gestione delle eccezioni. Ora, cosa succederà se si verifica un errore?

PublicClassexceptionHandlingExample
publicStaticVoidMain (String [] args)
int [] arr = 5, 10, 0, 25, 5;
per (Inti = 0; i
int num = 50;
Sistema.fuori.println ("risultato:" + num/arr [i]);


In questo programma, abbiamo una serie di numeri interi, all'interno del ciclo, specifichiamo una condizione arr.lunghezza che rappresenta iterazione fino all'ultima voce dell'array. E all'interno del corpo del ciclo, abbiamo un numero "50" e sarà diviso per ogni valore dell'array:

Dall'output, è chiaro che il programma termina quando si verifica un errore e non stampa i valori rimanenti dell'array.

Pertanto, per gestire tali scenari, i programmatori Java utilizzano il concetto di gestione delle eccezioni in modo che se si verifica un errore, invece di terminare l'intero programma, dovrebbe lanciare l'eccezione solo per l'affermazione interessata.

Gestione delle eccezioni utilizzando Try-Catch

Uno dei modi più semplici e semplici per affrontare le eccezioni è prova a prendere dichiarazioni che vengono fuori in coppia. Il codice specificato all'interno del blocco Try verrà testato per le eccezioni/errori e se si verifica un'eccezione, verrà catturato nel blocco catch.

La sintassi di base dell'istruzione Try-Catch sarà simile a questa:

Tentativo

// codice da testare per l'eccezione

presa

// codice per gestire le eccezioni

Il blocco di prova sarà sempre seguito da almeno un blocco di cattura.

Esempio

Estendiamo un po 'di più l'esempio precedente e aggiungiamo le dichiarazioni di try-catch per affrontare le eccezioni.

PublicClassexceptionHandlingExample
publicStaticVoidMain (String [] args)
int num = 50;
int [] arr = 5, 10, 0, 25, 5;
per (Inti = 0; iTentativo
Sistema.fuori.println ("risultato:" + num / arr [i]);
catch (eccezione ex)
Sistema.fuori.println ("si verifica un'eccezione");



Il codice completo insieme al rispettivo output è mostrato nel seguente frammento:

Questa volta in cui si verifica un errore, a quel punto il programma mostra un messaggio "Si verifica un'eccezione" E in seguito, il loop si itera attraverso le voci rimanenti dell'array.

Gestione delle eccezioni utilizzando finalmente l'istruzione

In Java, il Finalmente La parola chiave può essere utilizzata con il try-catch e eseguirà sempre indipendentemente dal fatto che le eccezioni siano gestite o meno.

Nota: Scrivi sempre le dichiarazioni/codice importanti (che si desidera eseguire in qualsiasi situazione) all'interno del Finalmente bloccare.

Esempio

Lo snippet di codice seguente mostra come Finalmente Block Works in Java:

PublicClassexceptionHandlingExample
publicStaticVoidMain (String [] args)
Tentativo
int numero1 = 12;
int numero2 = 0;
Sistema.fuori.println (numero1/numero2);

catch (arrayindexoutofboundSexceptionExcep)
Sistema.fuori.println ("Eccezione è avvenuta");

Finalmente

Sistema.fuori.println ("finalmente blocco");


Il codice completo e il rispettivo output sono mostrati nella seguente schermata:

Come nel codice sopra, utilizziamo l'eccezione ArrayoUoTofbound, quindi non è in grado di gestire un'eccezione aritmetica. Tuttavia, dallo snippet sopra, è chiaro che il Finalmente Block esegue indipendentemente dalle conseguenze (i.e. Eccezione gestita o no).

Gestione delle eccezioni usando la parola chiave di lancio

La parola chiave di lancio può essere usata per lanciare un'eccezione esplicitamente (i.e. Ci consente di creare un'eccezione personalizzata). Può essere utilizzato con qualsiasi tipo di eccezione come ArrayIndexoutOfBoundSexception, ArithmeTicexception e così via.

Esempio

In questo esempio prenderemo un valore al momento della chiamata di funzione, se il valore di input è uguale a 0, lanceremo a personalizzato eccezione aritmetica.

publicclassThrowExample
publicvoidDivide (int input)
numero int = 100;
if (input == 0)
lanciarritmeticexception ("\ n si inserisce 0, non può eseguire la divisione");
altro
Sistema.fuori.println ("risultato:" + numero / input);


publicStaticVoidMain (String [] args)
throwexample obj = newTrowExample ();
obj.dividere (0);

Il frammento di codice completo insieme all'output è fornito nel seguente snippet:

Lo snippet di codice sopra mostra che il passaggio "0" poiché l'input si traduce in eccezioni personalizzate che autenticano il funzionamento del gettare parola chiave.

Conclusione

Java fornisce più dichiarazioni per gestire le eccezioni/errori di runtime come provare, cattura, infine, lancio. prova a prendere Le dichiarazioni si presentano in coppia, il blocco di prova testa il codice per eccezioni/errori se si verifica un'eccezione, verrà catturato nel blocco catch. IL Finalmente La parola chiave può essere utilizzata con il battito di prova e eseguirà sempre indipendentemente dal fatto che le eccezioni siano gestite o meno gettare La parola chiave viene utilizzata per lanciare un'eccezione esplicitamente. Questo articolo fornisce una comprensione dettagliata di come gestire le eccezioni in Java.