English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية
Le eccezioni sono problemi che si verificano durante l'esecuzione del programma (errori di runtime). Quando si verifica un'eccezione, il programma si interrompe bruscamente e il codice dopo la riga che ha generato l'eccezione non verrà mai eseguito.
Puoi creare le tue eccezioni in Java, che si chiamano eccezioni definite dall'utente o eccezioni personalizzate.
Tutte le eccezioni devono essere sottoclasse di Throwable.
Se si desidera scrivere eccezioni controllate eseguite automaticamente da Handle o Delare Rule, è necessario espandereExceptionClasse.
Per scrivere un'eccezione di runtime, è necessario estendereRuntimeExceptionClasse.
Non è obbligatorio estendere la classe Exception per creare eccezioni personalizzate, è possibile farlo estendendo la classe Throwable (superclasse di tutte le eccezioni).
Ecco un esempio Java che crea un'eccezione personalizzata chiamata AgeDoesnotMatchException, che limita l'età dell'utente tra 17 e 24 anni. In questo esempio, la creazione non richiede l'estensione della classe Exception.
import java.util.Scanner; class AgeDoesnotMatchException extends Throwable{ AgeDoesnotMatchException(String msg){ super(msg); } } public class CustomException{ private String name; private int age; public CustomException(String name, int age){ try { if (age<17||age>24) { String msg = "L'età non è compresa tra 17 e 24"; AgeDoesnotMatchException ex = new AgeDoesnotMatchException(msg); throw ex; } }catch(AgeDoesnotMatchException e) { e.printStackTrace(); } this.name = name; this.age = age; } public void display(){ System.out.println("Nome dello Studente: "+this.name ); System.out.println("Età dello Studente: "+this.age ); } public static void main(String args[]) { Scanner sc = new Scanner(System.in); System.out.println("Inserisci il nome dello Studente: "); String name = sc.next(); System.out.println("Inserisci l'età dello Studente, deve essere tra 17 e 24 (inclusi 17 e 24): "); int age = sc.nextInt(); CustomException obj = new CustomException(name, age); obj.display(); } }
Risultato dell'output
Inserisci il nome dello Studente: Krishna Inserisci l'età dello Studente, deve essere tra 17 e 24 (inclusi 17 e 24): 30 july_set3.AgeDoesnotMatchException: L'età non è compresa tra 17 e 24 Nome dello Studente: Krishna Età dello Studente: 30 at july_set3.CustomException.<init>(CustomException.java:17) at july_set3.CustomException.main(CustomException.java:36)