logo

Gestione delle eccezioni in Java

  1. La gestione delle eccezioni
  2. Vantaggio della gestione delle eccezioni
  3. Gerarchia delle classi di eccezioni
  4. Tipi di eccezione
  5. Esempio di eccezione
  6. Scenari in cui può verificarsi un'eccezione

IL Gestione delle eccezioni in Java è uno dei potenti meccanismo per gestire gli errori di runtime in modo da poter mantenere il normale flusso della domanda.

In questo tutorial impareremo le eccezioni Java, i suoi tipi e la differenza tra eccezioni selezionate e non selezionate.

cambiare il nome della directory linux

Cos'è l'eccezione in Java?

Significato del dizionario: L'eccezione è una condizione anormale.

In Java, un'eccezione è un evento che interrompe il normale flusso del programma. È un oggetto che viene lanciato in fase di esecuzione.

Cos'è la gestione delle eccezioni?

La gestione delle eccezioni è un meccanismo per gestire errori di runtime come ClassNotFoundException, IOException, SQLException, RemoteException, ecc.

Vantaggio della gestione delle eccezioni

Il vantaggio principale della gestione delle eccezioni è per mantenere il normale flusso della domanda . Un'eccezione normalmente interrompe il normale flusso dell'applicazione; ecco perché dobbiamo gestire le eccezioni. Consideriamo uno scenario:

 statement 1; statement 2; statement 3; statement 4; statement 5;//exception occurs statement 6; statement 7; statement 8; statement 9; statement 10; 

Supponiamo che ci siano 10 istruzioni in un programma Java e che si verifichi un'eccezione nell'istruzione 5; il resto del codice non verrà eseguito, ovvero le istruzioni da 6 a 10 non verranno eseguite. Tuttavia, quando eseguiamo la gestione delle eccezioni, verrà eseguito il resto delle istruzioni. Questo è il motivo per cui utilizziamo la gestione delle eccezioni in Giava .

Sai?
  • Qual è la differenza tra eccezioni controllate e non controllate?
  • Cosa succede dietro il codice int data=50/0;?
  • Perché utilizzare il blocco di cattura multipla?
  • Esiste qualche possibilità quando il blocco finale non viene eseguito?
  • Cos'è la propagazione delle eccezioni?
  • Qual è la differenza tra la parola chiave Throw e Throws?
  • Quali sono le 4 regole per l'utilizzo della gestione delle eccezioni con l'override del metodo?

Gerarchia delle classi di eccezioni Java

La classe java.lang.Throwable è la classe radice della gerarchia Java Exception ereditata da due sottoclassi: Exception ed Error. La gerarchia delle classi di eccezioni Java è riportata di seguito:

gerarchia di gestione delle eccezioni

Tipi di eccezioni Java

Esistono principalmente due tipi di eccezioni: selezionate e non selezionate. Un errore è considerato un'eccezione non verificata. Tuttavia, secondo Oracle, esistono tre tipi di eccezioni:

  1. Eccezione controllata
  2. Eccezione non controllata
  3. Errore
gerarchia di gestione delle eccezioni

Differenza tra eccezioni controllate e non controllate

1) Eccezione controllata

Le classi che ereditano direttamente la classe Throwable, ad eccezione di RuntimeException ed Error, sono note come eccezioni controllate. Ad esempio, IOException, SQLException, ecc. Le eccezioni controllate vengono controllate in fase di compilazione.

2) Eccezione non controllata

Le classi che ereditano RuntimeException sono note come eccezioni non controllate. Ad esempio, ArithmeticException, NullPointerException, ArrayIndexOutOfBoundsException, ecc. Le eccezioni non controllate non vengono controllate in fase di compilazione, ma vengono controllate in fase di runtime.

3) Errore

L'errore è irrecuperabile. Alcuni esempi di errori sono OutOfMemoryError, VirtualMachineError, AssertionError ecc.

Parole chiave di eccezione Java

Java fornisce cinque parole chiave utilizzate per gestire l'eccezione. La tabella seguente descrive ciascuno di essi.

Parola chiaveDescrizione
TentativoLa parola chiave 'try' viene utilizzata per specificare un blocco in cui dovremmo inserire un codice di eccezione. Significa che non possiamo usare try block da solo. Il blocco try deve essere seguito da catch o infine.
presaIl blocco 'catch' viene utilizzato per gestire l'eccezione. Deve essere preceduto da try block, il che significa che non possiamo usare solo catch block. Può essere seguito da un blocco definitivo più tardi.
FinalmenteIl blocco 'finalmente' viene utilizzato per eseguire il codice necessario del programma. Viene eseguito indipendentemente dal fatto che un'eccezione venga gestita o meno.
gettareLa parola chiave 'throw' viene utilizzata per generare un'eccezione.
lanciaLa parola chiave 'throws' viene utilizzata per dichiarare eccezioni. Specifica che potrebbe verificarsi un'eccezione nel metodo. Non genera un'eccezione. Viene sempre utilizzato con la firma del metodo.

Esempio di gestione delle eccezioni Java

Vediamo un esempio di gestione delle eccezioni Java in cui utilizziamo un'istruzione try-catch per gestire l'eccezione.

JavaExceptionExample.java

 public class JavaExceptionExample{ public static void main(String args[]){ try{ //code that may raise exception int data=100/0; }catch(ArithmeticException e){System.out.println(e);} //rest code of the program System.out.println('rest of the code...'); } } 
Provalo adesso

Produzione:

 Exception in thread main java.lang.ArithmeticException:/ by zero rest of the code... 

Nell'esempio precedente, 100/0 solleva un'ArithmeticException gestita da un blocco try-catch.

Scenari comuni di eccezioni Java

Vengono forniti alcuni scenari in cui possono verificarsi eccezioni non controllate. Sono i seguenti:

1) Uno scenario in cui si verifica ArithmeticException

Se dividiamo un numero qualsiasi per zero, si verifica un'ArithmeticException.

 int a=50/0;//ArithmeticException 

2) Uno scenario in cui si verifica NullPointerException

Se abbiamo un valore nullo in any variabile , l'esecuzione di qualsiasi operazione sulla variabile genera una NullPointerException.

 String s=null; System.out.println(s.length());//NullPointerException 

3) Uno scenario in cui si verifica NumberFormatException

Se la formattazione di qualsiasi variabile o numero non corrisponde, potrebbe verificarsi NumberFormatException. Supponiamo di avere a corda variabile che ha caratteri; la conversione di questa variabile in cifre causerà NumberFormatException.

 String s='abc'; int i=Integer.parseInt(s);//NumberFormatException 

4) Uno scenario in cui si verifica ArrayIndexOutOfBoundsException

Quando un array supera le sue dimensioni, si verifica l'ArrayIndexOutOfBoundsException. potrebbero esserci altri motivi per verificarsi ArrayIndexOutOfBoundsException. Considera le seguenti affermazioni.

 int a[]=new int[5]; a[10]=50; //ArrayIndexOutOfBoundsException 

Indice delle eccezioni Java

  1. Blocco Try-Catch Java
  2. Blocco di cattura multipla Java
  3. Prova nidificata Java
  4. Java finalmente bloccato
  5. Parola chiave Java
  6. Propagazione delle eccezioni Java
  7. Java genera una parola chiave
  8. Lancio Java vs Lancio
  9. Java Finale vs Finalmente vs Finalizza
  10. Gestione delle eccezioni Java con overriding del metodo
  11. Eccezioni personalizzate Java