Giava

Gestione delle eccezioni Java

Gestione delle eccezioni Java
Quando il normale flusso dell'esecuzione del programma si interrompe per qualsiasi errore, allora si parla di eccezione. Questo tipo di evento può essere gestito utilizzando un tentativo di cattura-finalmente bloccare. Un'eccezione è un oggetto che viene utilizzato per rilevare l'errore ed eseguire l'istruzione in base alla condizione di errore chiamata gestione delle eccezioni. Principalmente due tipi di errore vengono gestiti dalla gestione delle eccezioni. Questi sono tempo compilato errori e tempo di esecuzione errori. Il tempo di esecuzione gli errori sono gestiti dalla gestione delle eccezioni. Come puoi gestire le eccezioni in Java è spiegato in questo tutorial.

Sintassi:

La sintassi di il try-catch-finalmente il blocco è riportato di seguito.

provare
affermazione 1… N

catch (ExceptiontType var)
affermazione 1… N

finalmente
affermazione 1… N

Qui, se si verifica un'eccezione all'interno del blocco try, l'eccezione verrà generata nel blocco catch e il blocco finalmente è facoltativo qui. Il codice del blocco final viene eseguito indipendentemente dal verificarsi o meno di un'eccezione.

Esempio 1: gestione delle eccezioni con un singolo blocco catch

L'esempio seguente mostra l'uso della gestione delle eccezioni utilizzando un singolo blocco catch. Un nome file verrà preso come input e creerà un oggetto di BufferedReader per aprire un file per la lettura. Se il nome del file esiste, il contenuto del file verrà letto riga per riga e stampato. Se il file non esiste, verrà generata un'eccezione e verrà stampato un messaggio di errore.

import java.io.Lettore bufferizzato;
import java.io.Lettore di file;
import java.io.IOException;
import java.utile.Scanner;
classe pubblica eccetto1
public static void main(String[] args)
// Crea un oggetto Scanner
Scanner in = nuovo Scanner (Sistema.nel);
Sistema.su.print("Inserisci il nome del file: ");
// Prende i dati della stringa dall'utente
String FileName = in.Il prossimo();
provare
//Crea un oggetto lettore
BufferedReader reader = new BufferedReader(new FileReader(FileName));
//Leggi la prima riga se il file esiste
Riga di stringa = lettore.linea di lettura();
mentre (linea != nullo)
//Stampa la riga
Sistema.su.println(linea);
//Leggi la riga successiva
riga = lettore.linea di lettura();

//Chiudi l'oggetto lettore
lettore.vicino();
//Chiudi l'oggetto scanner
nel.vicino();
catch (IOException e)
//Stampa il messaggio di errore
Sistema.su.println("Il file non esiste");


Produzione:

Nella seguente uscita,  'Ciao.TXT' è dato come il nome del file che non esiste. Quindi viene stampato il seguente messaggio.

La prossima volta, file1.TXT viene fornito come nome file esistente e l'output mostra il contenuto del file.

Esempio 2: gestione delle eccezioni con più blocchi catch

Come è possibile utilizzare più blocchi catch per gestire più eccezioni è mostrato nel seguente esempio. Qui vengono dichiarati tre blocchi di cattura. Il primo blocco catch catturerà l'errore aritmetico quando viene eseguita qualsiasi operazione aritmetica illogica. Il secondo blocco catch rileverà l'errore fuori intervallo dell'array quando si tenterà di leggere un valore di indice dell'array che non esiste. Il terzo blocco catch catturerà l'errore del valore numerico quando qualsiasi carattere o valore di stringa viene fornito come valore dell'array. Nel codice viene dichiarato un array con quattro indici e inizializzato con i valori interi che verranno presi dall'utente. I valori dell'array vengono stampati utilizzando un ciclo. Un'operazione di divisione viene eseguita alla fine del blocco try.

import java.utile.Scanner;
classe pubblica tranne2
public static void main(String[] args)

provare

//Dichiara un array numerico
int num_arr[] = nuovo int[4];
//Crea un oggetto Scanner
Scanner in = nuovo Scanner (Sistema.nel);
Sistema.su.println("Inserisci quattro numeri:");
//Itera il ciclo quattro volte
per (int i = 0; i < 4; i++)
//Inserisci numero
int n = in.nextInt();
//Assegna un valore all'array
num_arr[i] = n;

Sistema.su.println("I valori della matrice sono:");
//Itera il ciclo cinque volte
per (int i = 0; i < 4; i++)
//Stampa i valori dell'array
Sistema.su.println(num_arr[i]);

//Dividi e stampa il valore
numero int = 50/0;
Sistema.su.print(num);
//Chiudi l'oggetto scanner
nel.vicino();

catch(ArithmeticException e)

Sistema.su.println("Nessun numero è divisibile per 0");

catch(ArrayIndexOutOfBoundsException e)

Sistema.su.println("Si è verificato un valore di indice fuori dall'array");

catch(Eccezione e)

Sistema.su.println("Il valore numerico non è stato fornito");


Produzione:

Il seguente output mostra che i valori dell'array vengono inseriti e stampati correttamente, ma il terzo blocco catch viene eseguito perché 50 è diviso per 0, che è un errore.

Il programma viene eseguito per la seconda volta. Quando un valore stringa viene fornito come valore di matrice, viene generata la seconda eccezione e viene eseguita l'istruzione del secondo blocco catch.

Esempio 3: gestione delle eccezioni con il blocco try-catch-finally

L'uso del blocco finalmente con il blocco try-catch è mostrato nel seguente esempio. Il codice del blocco final viene eseguito se si verifica o meno un'eccezione. Nel codice, verrà preso un valore intero dall'utente. Se l'utente fornisce un valore di stringa, allora InputMismatchException

genererà e stamperà il messaggio dal blocco catch. L'oggetto scanner verrà chiuso nel in finalmente blocca se l'eccezione viene generata o meno.

import java.utile.Scanner;
import java.utile.InputMismatchException;
classe pubblica tranne3
public static void main(String[] args)
//Crea un oggetto Scanner
Scanner in = nuovo Scanner (Sistema.nel);
Sistema.su.print("Inserisci un numero: ");
provare
//Prende i dati della stringa dall'utente
int numero = in.nextInt();
//Stampa il numero
Sistema.su.println("Il valore di numero = " + numero);
catch(InputMismatchException e)
//Stampa messaggio di errore
Sistema.su.println("Il valore della stringa non è accettato.");

finalmente
//Chiudi l'oggetto scanner
nel.vicino();
Sistema.su.println("Chiuso dal programma");


Produzione:

78 viene fornito come valore di input nel seguente output dopo l'esecuzione del codice. Quindi, qui non viene generata alcuna eccezione. Il messaggio del blocco final viene stampato in seguito printed.

Il prossimo, Ciao viene fornito come input dopo aver eseguito il codice che è una stringa. Quindi, viene generata l'eccezione e viene stampato il messaggio di errore dal blocco catch. Il messaggio del blocco final viene stampato in seguito printed.

Conclusione:

La gestione delle eccezionièuna caratteristica molto importante e utile di qualsiasi linguaggio di programmazione che può essere utilizzato per nascondere il vero messaggio di errore all'utente e fornire il messaggio di errore leggibile dall'utente affinché l'utente possa comprendere correttamente l'errore. Questo tutorial aiuta l'utente a imparare diversi modi di applicare la gestione delle eccezioni in Java e rendere il proprio codice più appropriato.

Come aumentare gli FPS in Linux?
FPS sta per Fotogrammi al secondo. Il compito dell'FPS è misurare il frame rate nelle riproduzioni video o nelle prestazioni di gioco game. In parole ...
I migliori giochi di laboratorio dell'app Oculus
Se possiedi un visore Oculus, devi essere informato sul sideloading. Il sideloading è il processo di installazione di contenuti non archiviati sul vis...
I 10 migliori giochi da giocare su Ubuntu
La piattaforma Windows è stata una delle piattaforme dominanti per i giochi a causa dell'enorme percentuale di giochi che si stanno sviluppando oggi p...