Cattura più eccezioni in Java

Rupam Yadav 12 ottobre 2023
  1. Cattura più eccezioni utilizzando più istruzioni Catch in Java
  2. Cattura più eccezioni usando instanceOf in Java
  3. Cattura più eccezioni in un blocco catch usando | in Giava
Cattura più eccezioni in Java

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
Autore: Rupam Yadav
Rupam Yadav avatar Rupam Yadav avatar

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

Articolo correlato - Java Exception