Ultimo Aggiornamento il 29 agosto, il 2020 Scientech Facile
In questo tutorial, impariamo gerarchia di eccezioni in Java, con schemi e brevi descrizioni.
Nel tutorial precedente, abbiamo spiegato i punti di base della gestione delle eccezioni in Java, gestore delle eccezioni con esempi in tempo reale. Ti consiglierò di familiarizzare prima con i punti di base.,
Types of Exceptions in Java
Basically, there are two types of exceptions in java API. They are:
1. Predefined Exceptions (Built-in-Exceptions)
2. Custom Exceptions
Predefined Exceptions:
Predefined exceptions are those exceptions that are already defined by Java system. These exceptions are also called built-in-exceptions.
Java API supports exception handling by providing the number of predefined exceptions. These predefined exceptions are represented by classes in java.,
Quando si verifica un’eccezione predefinita, JVM (Java runtime system) crea un oggetto di classe di eccezione predefinita. Tutte le eccezioni sono derivate da java.lang.Classe throwable ma non tutte le classi di eccezione sono definite nello stesso pacchetto.
Tutte le eccezioni predefinite supportate da java sono organizzate come sottoclassi in una gerarchia sotto la classe Throwable.
La classe Throwable è la radice della gerarchia delle eccezioni ed è una sottoclasse immediata della classe Object. Diamo un’occhiata alla gerarchia delle eccezioni java, come mostrato nella figura seguente.
1., Throwable class: come mostrato nella figura sopra, Throwable class che deriva dalla classe Object, è una parte superiore della gerarchia delle eccezioni da cui tutte le classi di eccezioni sono derivate direttamente o indirettamente. È la radice di tutte le classi di eccezione. È presente in java.pacchetto lang.
La classe Throwable è la superclasse di tutte le eccezioni in java. Questa classe ha due sottoclassi: Errore ed eccezione. Errori o eccezioni che si verificano nei programmi java sono oggetti di queste classi. Usando la classe Throwable, puoi anche creare le tue eccezioni personalizzate.
2., Error: la classe Error è la sottoclasse della classe Throwable e una superclasse di tutte le classi di errore di runtime. Termina il programma se c’è un problema relativo a un sistema o risorse (JVM).
Un errore rappresenta generalmente un problema insolito o una situazione da cui è difficile recuperare. Non si verifica per errori del programmatore. Generalmente si verifica se il sistema non funziona correttamente o la risorsa non è allocata correttamente.
VirtualMachineError, StackOverFlowError, AssertionError, LinkageError, OutOfMmeoryError, ecc sono esempi di errore., Impareremo maggiori dettagli in ulteriori tutorial.
3. Eccezione: è rappresentata da una classe di eccezione che rappresenta gli errori causati dal programma e da fattori esterni. La classe Exception è una sottoclasse di classe Throwable e una superclasse di tutte le classi exception. Tutte le classi di eccezione sono derivate direttamente o indirettamente dalla classe di eccezione. Generalmente provengono dall’interno dell’applicazione.,
L’eccezione della classe fornisce due costruttori:
- pubblica Eccezione() (costruttore di Default)
- pubblica Eccezione(String message) (prende una stringa di messaggio come argomento)
Ciascuna delle classi di eccezione fornisce due costruttori: uno con nessun argomento e un altro con un argomento di tipo Stringa. La classe Exception non fornisce il proprio metodo. Eredita tutti i metodi forniti dalla classe Throwable.,
Gerarchia delle classi di eccezione in Java
La gerarchia delle classi di eccezione in Java è stata mostrata nella figura seguente che è molto importante per uno scopo di intervista.
Eccezioni personalizzate:
Le eccezioni personalizzate sono quelle eccezioni create dagli utenti o dai programmatori in base alle proprie esigenze. Le eccezioni personalizzate sono anche chiamate eccezioni definite dall’utente che vengono create estendendo la classe exception.,
Quindi, Java offre la libertà ai programmatori di generare e gestire eccezioni mentre si occupano dei requisiti funzionali dei problemi che stanno risolvendo. Discuteremo più dettagliatamente sulle eccezioni personalizzate in ulteriori tutorial.
Vediamo la breve descrizione di ogni sottoclasse della classe Exception.
Classe RuntimeException (eccezioni deselezionate)
La classe RuntimeException è una sottoclasse della classe Exception. Viene lanciato da JVM o programmaticamente quando un’operazione aritmetica eseguita nel programma non è corretta o si verifica un difetto/bug nel codice del programma.,
RuntimeException e tutte le sue sottoclassi di eccezione non vengono controllate dal compilatore Java perché si verificano durante il runtime di un programma. Ecco perché queste eccezioni sono anche chiamate eccezioni non controllate.
La classe RuntimeException è composta da molte altre sottoclassi di eccezioni utilizzate per gestire un tipo specifico di eccezione. Oltre a queste sottoclassi di eccezione della classe RuntimeException mostrata nella figura sopra, ci sono anche altre sottoclassi della classe RuntimeException che non sono state mostrate nel diagramma della struttura gerarchica per evitare la complessità.,
Vediamo una breve descrizione di loro.
1. ArithmeticException: questa eccezione viene generata quando si verificano problemi aritmetici, ad esempio un numero è diviso per zero. Cioè, è causato da errore di matematica.
2. ClassCastException: La ClassCastException è un’eccezione di runtime che viene generata da JVM quando si tenta di typecasting non valido nel programma. Cioè, viene lanciato quando lanciamo un oggetto in una sottoclasse di cui un oggetto non è un’istanza.
3., IllegalArgumentException: questa eccezione di runtime viene generata a livello di codice quando viene passato un argomento illegale o appropriato per chiamare un metodo. Questa classe di eccezione ha altre due sottoclassi:
- NumberFormatException
- IllegalThreadStateException
NumericFormatException: NumberFormatException viene generata a livello di codice quando proviamo a convertire una stringa nel tipo numerico e il processo di conversione illegale fallisce. Cioè, si verifica a causa della conversione illegale di una stringa in un formato numerico.,
IllegalThreadStateException: IllegalThreadStateException exception è un’eccezione di runtime che viene generata a livello di codice quando si tenta di eseguire qualsiasi operazione su un thread ma non è compatibile con lo stato del thread corrente.
4. IndexOutOfBoundsException: Questa classe di eccezione viene generata da JVM quando un array o una stringa esce dall’indice specificato., It has two further subclasses:
- ArrayIndexOutOfBoundsException
- StringIndexOutOfBoundsException
ArrayIndexOutOfBoundsException: ArrayIndexOutOfBoundsException exception is thrown when an array element is accessed out of the index.
StringIndexOutOfBoundsException: StringIndexOutOfBoundsException exception is thrown when a String or StringBuffer element is accessed out of the index.
5., NullPointerException: NullPointerException è un’eccezione di runtime che viene generata da JVM quando tentiamo di utilizzare null invece di un oggetto. Cioè, viene lanciato quando il riferimento è nullo.
6. ArrayStoreException: questa eccezione si verifica quando tentiamo di memorizzare qualsiasi valore in un array che non è di tipo array. Ad esempio, supponiamo che un array sia di tipo intero ma stiamo cercando di memorizzare un valore di un elemento di un altro tipo.
7., IllegalStateException: L’eccezione IllegalStateException viene generata a livello di codice quando l’ambiente di runtime non è in uno stato appropriato per chiamare qualsiasi metodo.
8. IllegalMonitorStateException: questa eccezione viene generata quando un thread non ha il diritto di monitorare un oggetto e tenta di accedere ai metodi wait(), notify () e notifyAll() dell’oggetto.
9. NegativeArraySizeException: l’eccezione NegativeArraySizeException viene generata quando viene creato un array con una dimensione negativa.,
Elenco delle eccezioni controllate in Java
Ora, abbiamo elencato le eccezioni controllate in una breve descrizione.
1. ClassNotFoundException: La ClassNotFoundException è un tipo di eccezione controllata che viene generata quando tentiamo di utilizzare una classe che non esiste.
Le eccezioni controllate sono quelle eccezioni controllate dal compilatore Java stesso.
2. FileNotFoundException: FileNotFoundException è un’eccezione selezionata che viene generata quando si tenta di accedere a un file non esistente.
3., InterruptedException: InterruptedException è un’eccezione controllata che viene generata quando un thread è in stato di sospensione o attesa e un altro thread tenta di interromperlo.
4. InstantiationException: Questa eccezione è anche un’eccezione controllata che viene generata quando proviamo a creare un oggetto di classe o interfaccia astratta. Cioè, l’eccezione InstantiationException si verifica quando viene istanziata una classe astratta o un’interfaccia.
5., IllegalAccessException: IllegalAccessException è un’eccezione controllata e viene generata quando un metodo viene chiamato in un altro metodo o classe ma il metodo o la classe chiamante non ha l’autorizzazione per accedere a tale metodo.
6. CloneNotSupportedException: Questa eccezione selezionata viene generata quando proviamo a clonare un oggetto senza implementare l’interfaccia clonabile.
7. NoSuchFieldException: Questa è un’eccezione controllata che viene generata quando viene utilizzata una variabile sconosciuta in un programma.
8., NoSuchMethodException: Questa eccezione selezionata viene generata quando il metodo undefined viene utilizzato in un programma.
Spero che questo tutorial abbia coperto quasi tutti i punti di base relativi alla gerarchia delle eccezioni in java. Spero che avrai capito i punti base della classe Throwable e le sue sottoclassi: Exception ed Error.
Punti chiave da ricordare:
- Due tipi di eccezioni in Java: eccezioni predefinite e personalizzate.
- La classe root per tutte le eccezioni nella gerarchia delle classi di eccezione è java.lang.Lanciabile.,
- Exception classes are mainly divided into three types: system errors, exceptions, and runtime exceptions.
- System errors are represented by Error class and thrown by JVM.
- Exceptions are represented by Exception classes that describe errors in your program.
Thanks for reading!!!
Next ⇒ Checked and Unchecked Exception in Java⇐ PrevNext ⇒