Tipi di eccezioni in Java

Java è un linguaggio di programmazione orientato agli oggetti. Fornisce supporto per vari meccanismi come la gestione delle eccezioni. Questa funzionalità di Java consente agli sviluppatori di gestire gli errori di runtime causati dalle eccezioni.

In questo articolo, imparerai a conoscere le eccezioni in Java. Potrai anche conoscere diversi tipi di eccezioni in Java.

Eccezioni sono gli errori indesiderati o bug o eventi che limitano la normale esecuzione di un programma., Ogni volta che si verifica un’eccezione, l’esecuzione del programma viene interrotta. Sullo schermo viene visualizzato un messaggio di errore.

Ci sono diverse ragioni dietro il verificarsi di eccezioni. Queste sono alcune condizioni in cui si verifica un’eccezione:

  • Ogni volta che un utente fornisce dati non validi.
  • Il file a cui si richiede l’accesso non esiste nel sistema.
  • Quando la Java Virtual Machine (JVM) esaurisce la memoria.
  • Rete scende nel mezzo della comunicazione.

Ora cerchiamo di esplorare diversi tipi di eccezioni in Java.,

La classe padre di tutte le classi di eccezione è java.lang.Classe di eccezione. Figura 1 illustra i diversi tipi di eccezioni Java.

Figura 1: Tipi di Eccezioni in Java

Se si parla di classe di Eccezione, è una sottoclasse della classe Throwable. C’è un’altra sottoclasse che deriva dalla classe Throwable cioè Errore come illustrato in Figura 1., L’errore può essere definito come una condizione anormale che indica che qualcosa è andato storto con l’esecuzione del programma. Questi non sono gestiti da programmi Java.

Ci sono alcuni metodi importanti disponibili nella classe Throwable che sono i seguenti:

  • public String getMessage() – Fornisce informazioni sull’eccezione che si è verificata attraverso un messaggio, che viene inizializzato nel costruttore Throwable.
  • public Throwable getCause () – Fornisce la causa principale dell’eccezione rappresentata da un oggetto Throwable.,
  • public void printStackTrace () – Utilizzato per visualizzare l’output di toString () insieme alla traccia dello stack nel sistema.err (flusso di uscita errore).
  • public StackTraceElement getStackTrace () – Restituisce un array con ogni elemento presente nella traccia dello stack. L’elemento index 0 simboleggerà la parte superiore dello stack di chiamate e l’ultimo elemento dell’array identificherà la parte inferiore dello stack di chiamate.,

There are mainly two types of exceptions in Java as follows:

  • Checked exception
  • Unchecked exception

Checked exception

Checked exceptions are also known as compile-time exceptions as these exceptions are checked by the compiler during the compilation process to confirm whether the exception is handled by the programmer or not. If not, then the system displays a compilation error. For example, SQLException, IOException, InvocationTargetException, and ClassNotFoundException.,

Per illustrare il concetto di eccezione controllata, consideriamo il seguente frammento di codice:

Uscita:

Exception in thread "main" java.lang.Error: Unresolved compilation problems:Unhandled exception type FileNotFoundExceptionUnhandled exception type IOExceptionUnhandled exception type IOException

parola chiave throw

è chiaramente visualizzato nell’output che il programma genera eccezioni durante il processo di compilazione. Esistono due metodi per risolvere tali problemi. Puoi dichiarare l’eccezione con l’aiuto della parola chiave throw.

Output: Il file verrà visualizzato sullo schermo.

try-catch block

Oltre al metodo sopra menzionato, esiste un altro modo per risolvere le eccezioni., È possibile gestire con l’aiuto di blocchi try-catch.

Output: il codice verrà eseguito senza problemi e il file verrà visualizzato.

Ora, cerchiamo di conoscere altre eccezioni controllate. Alcuni di questi sono:

SQLException

Questo tipo di eccezione si verifica durante l’esecuzione di query su un database relativo alla sintassi SQL. Ad esempio, considera il seguente frammento di codice:

Output: questo codice genererà una SQLException.

IOException

Questo tipo di eccezione si verifica durante l’utilizzo di operazioni di flusso I/O file., Ad esempio, considera il seguente frammento di codice:

Output: questo codice genererà un’eccezione IOException.

ClassNotFoundException

Questo tipo di eccezione viene generato quando la JVM non è in grado di trovare la classe richiesta. Potrebbe essere dovuto a un errore della riga di comando, a un problema di classpath o a un mancante .file di classe. Ad esempio, si consideri il seguente frammento di codice:

Output: Questo codice genererà una ClassNotFoundException.

InvocationTargetException

Questo tipo di eccezione avvolge un’eccezione generata da un metodo invocato o da un costruttore., È possibile accedere all’eccezione generata con l’aiuto del metodo getTargetException. Ad esempio, si consideri il seguente frammento di codice:

Output:

Invoking testMethod()An InvocationTargetException was caught!Invocation of testMethod failed because of: The string must contain at least one character!

Output: Questo codice genererà un’istantiationexception.

Eccezione deselezionata

Le eccezioni deselezionate sono quelle eccezioni che si verificano durante l’esecuzione del programma. Quindi sono anche indicati come eccezioni di runtime. Queste eccezioni vengono generalmente ignorate durante il processo di compilazione. Non vengono controllati durante la compilazione del programma., Ad esempio, la programmazione di bug come errori logici e l’utilizzo di API errate.

Per illustrare il concetto di eccezione non controllata, consideriamo il seguente frammento di codice:

Output 1:

Enter your age in Numbers: 21You can view the page

Output 2:

Ora, impariamo altre eccezioni non controllate. Alcuni di questi sono:

NullPointerException

Questo tipo di eccezione si verifica quando si tenta di accedere a un oggetto con l’aiuto di una variabile di riferimento il cui valore corrente è null o vuoto., Ad esempio, si consideri il seguente frammento di codice:

Output: NullPointerException si trova nel programma.

ArrayIndexOutofBound

Questo tipo di eccezione si verifica quando si tenta di accedere a un array con un valore di indice non valido. Il valore fornito è negativo o superiore alla lunghezza dell’array.

Ad esempio, considera il seguente snippet di codice:

Output: L’indice dell’array è fuori limite

IllegalArgumentException

Questo tipo di eccezione si verifica ogni volta che un argomento inappropriato o errato viene passato a un metodo., Ad esempio, se un metodo è definito con una stringa non vuota come parametri. Ma stai fornendo stringhe di input null. Quindi, IllegalArgumentException viene generata per indicare all’utente che non è possibile passare una stringa di input null al metodo.

Considera il seguente frammento di codice per dimostrare questo tipo di eccezione:

IllegalStateException

Questo tipo di eccezione si verifica quando lo stato dell’ambiente non corrisponde all’operazione in esecuzione., Ad esempio, si consideri il seguente frammento di codice, che dimostra questo tipo di eccezione:

Output: Questo codice genererà IllegalStateException.

Se esiste già una data di pubblicazione nel sistema, produrrà un’eccezione IllegalStateException che indica che il libro non può essere pubblicato di nuovo.

NumberFormatException

Questo tipo di eccezione si verifica quando si passa una stringa a un metodo che non può essere convertito in un numero. Ad esempio, si consideri il seguente frammento di codice:

Output: Questo codice genererà NumberFormatException.,

ArithmeticException

Questo tipo di eccezione si verifica quando si esegue un’operazione aritmetica errata. Ad esempio, se dividi un numero qualsiasi per zero, visualizzerà tale eccezione. Consideriamo il seguente frammento di codice:

Output: Questo codice genererà un’eccezione ArithmeticException.

Monitora le tue applicazioni Java con uno strumento con Stackify Retrace. Scarica la tua prova gratuita di due settimane oggi.,

Leggere il prossimo: 9 Best Practices per la gestione delle Eccezioni in Java

  • Circa l’Autore
  • Ultimi Post

Circa Sagar Arora

Sagar Arora è un tecnico esperto scrittore di contenuti con conoscenza di C, C++, python, PHP, Java lingue. La sua copertura di scrittura include aziende come iSkysoft, Keepvid, Xpo2, Stackify, Entrepreneurbus, ecc.

  • Ruby on Rails: I migliori blog e canali YouTube – novembre 29, 2018
  • Nodo più popolare.,js Frameworks nel 2018-19 novembre 2018
  • Top 10 Nodo.js Developer Tools-Novembre 13, 2018
  • Miglior nodo.js Blog e Canali YouTube – 12 novembre 2018
  • Imparare JavaScript: Tutorial per Principianti, Intermedi e Avanzati Programmatori – 18 ottobre 2018

Lascia un commento

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *