Cattura più eccezioni in Java
- Cattura più eccezioni utilizzando più istruzioni Catch in Java
-
Cattura più eccezioni usando
instanceOf
in Java -
Cattura più eccezioni in un blocco catch usando
|
in Giava
Oggi esamineremo i modi in cui possiamo utilizzare e rilevare più eccezioni in Java. Un’eccezione in Java si verifica quando si verifica un evento indesiderato durante il runtime. Il modo più comune per visualizzare un’eccezione è utilizzare le parole chiave try-catch. Qui, il try
contiene il blocco di codice da controllare e il catch
ha il codice da mostrare quando si verifica un’eccezione.
Verificheremo i tre metodi per utilizzare più eccezioni in una singola cattura con i seguenti esempi.
Cattura più eccezioni utilizzando più istruzioni Catch in Java
Nell’esempio, prendiamo i due input di tipo int dall’utente e poi li dividiamo per mostrare il risultato. Nota che abbiamo racchiuso questo codice in un blocco try
; significa che deve avere anche un blocco catch
.
Eccezioni multiple potrebbero essere generate come InputMismatchException
quando il valore immesso non è di tipo int
e ArithmeticException
quando num2
ottiene il valore zero perché nessun numero è diviso per zero. Possiamo lanciare un’Exception
che è il genitore di tutte le altre eccezioni.
Per catturarli tutti, scriviamo tre diversi blocchi catch
con i loro tipi di eccezione e stampiamo il messaggio per mostrare quando si verifica quell’eccezione. L’output mostra i diversi risultati quando non ci sono eccezioni e quando ci sono eccezioni.
import java.util.InputMismatchException;
import java.util.Scanner;
public class MultiExceptions {
public static void main(String[] args) {
System.out.println("Enter two numbers: ");
Scanner sc = new Scanner(System.in);
try {
System.out.println("num1: ");
int num1 = sc.nextInt();
System.out.println("num2: ");
int num2 = sc.nextInt();
int dividedNum = num1 / num2;
System.out.println("After division result: " + dividedNum);
} catch (InputMismatchException e1) {
System.out.println("Error! - Please enter a number.");
} catch (ArithmeticException e2) {
System.out.println("Error! - You cannot divide any number with 0");
} catch (Exception e3) {
System.out.println("An error occurred please try again!");
}
}
}
Uscita 1:
Enter two numbers : num1 : 10 num2 : 2 After division result : 5
Uscita 2:
Enter two numbers : num1 : 50 num2 : hhh Error !-Please enter a number.
Uscita 3:
Enter two numbers : num1 : 10 num2 : 0 Error !-You cannot divide any number with 0
Cattura più eccezioni usando instanceOf
in Java
Un altro metodo che puoi fare include l’uso della funzione instanceOf
, che controlla se un oggetto è del tipo specificato o meno; restituisce un valore booleano. Usiamo lo stesso esempio di sopra, ma qui usiamo un singolo blocco catch
con più istruzioni if.
Come discusso sopra, l’Exception
è la classe genitore delle eccezioni più comuni. Possiamo usare il suo oggetto per verificare se l’eccezione generata è del tipo specificato. Qui esaminiamo le due eccezioni: InputMismatchException
e ArithmeticException
.
import java.util.InputMismatchException;
import java.util.Scanner;
public class MultiExceptions {
public static void main(String[] args) {
System.out.println("Enter two numbers: ");
Scanner sc = new Scanner(System.in);
try {
System.out.println("num1: ");
int num1 = sc.nextInt();
System.out.println("num2: ");
int num2 = sc.nextInt();
int dividedNum = num1 / num2;
System.out.println("After division result: " + dividedNum);
} catch (Exception e) {
if (e instanceof InputMismatchException) {
System.out.println("Error! - Please enter a number.");
} else if (e instanceof ArithmeticException) {
System.out.println("Error! - You cannot divide any number with 0");
} else {
System.out.println("An error occurred please try again!");
}
}
}
}
Produzione:
Enter two numbers:
num1:
d
Error! - Please enter a number.
Cattura più eccezioni in un blocco catch usando |
in Giava
In Java 7 e versioni successive, possiamo utilizzare il simbolo della pipe o OR bit a bit
per scrivere più eccezioni in una singola cattura. Nell’esempio, dividiamo i due numeri immessi e poi controlliamo se una delle due eccezioni è vera. Se è vero, verrà stampato il messaggio di errore.
import java.util.InputMismatchException;
import java.util.Scanner;
public class MultiExceptions {
public static void main(String[] args) {
System.out.println("Enter two numbers: ");
Scanner sc = new Scanner(System.in);
try {
System.out.println("num1: ");
int num1 = sc.nextInt();
System.out.println("num2: ");
int num2 = sc.nextInt();
int dividedNum = num1 / num2;
System.out.println("After division result: " + dividedNum);
} catch (InputMismatchException | ArithmeticException e) {
System.out.println("An error occurred please try again");
}
}
}
Produzione:
Enter two numbers:
num1:
f
An error occurred please try again
Rupam Saini is an android developer, who also works sometimes as a web developer., He likes to read books and write about various things.
LinkedIn