In Java, gestione delle eccezioni è uno dei mezzi efficaci per gestire gli errori di runtime in modo da preservare il flusso regolare dell'applicazione. Java Exception Handling è un meccanismo per gestire errori di runtime come ClassNotFoundException, IOException, SQLException, RemoteException, ecc.
In questo articolo impareremo a conoscere lanciare e lancia in Java che può gestire le eccezioni in Java.
Lancio di Java
La parola chiave Throw in Java viene utilizzata per generare esplicitamente un'eccezione da un metodo o da qualsiasi blocco di codice. Possiamo lanciarli entrambi eccezione controllata o non controllata . La parola chiave Throw viene utilizzata principalmente per generare eccezioni personalizzate.
quanto è grande lo schermo del mio computer
La sintassi in Java lancia
throw Instance Example: throw new ArithmeticException('/ by zero');>
Ma questa eccezione, cioè Esempio deve essere di tipo Lanciabile o una sottoclasse di Lanciabile .
Per esempio , un'eccezione è una sottoclasse di Throwable e le eccezioni definite dall'utente in genere estendono la classe Exception . A differenza di C++, i tipi di dati come int, char, float o classi non lanciabili non possono essere utilizzati come eccezioni.
Il flusso di esecuzione del programma si interrompe immediatamente dopo l'esecuzione dell'istruzione Throw e dell'inclusione più vicina Tentativo il blocco viene controllato per vedere se ha un file presa istruzione che corrisponde al tipo di eccezione. Se trova una corrispondenza, il controllo viene trasferito a quell'istruzione che altrimenti verrà allegata successivamente Tentativo il blocco viene controllato e così via. Se non c'è corrispondenza presa viene trovato, il gestore eccezioni predefinito interromperà il programma.
Esempi di lancio Java
Esempio 1:
Giava
// Java program that demonstrates the use of throw> class> ThrowExcep {> > static> void> fun()> > {> > try> {> > throw> new> NullPointerException(> 'demo'> );> > }> > catch> (NullPointerException e) {> > System.out.println(> 'Caught inside fun().'> );> > throw> e;> // rethrowing the exception> > }> > }> > public> static> void> main(String args[])> > {> > try> {> > fun();> > }> > catch> (NullPointerException e) {> > System.out.println(> 'Caught in main.'> );> > }> > }> }> |
>
>
Produzione
Caught inside fun(). Caught in main.>
Esempio 2
Giava
// Java program that demonstrates> // the use of throw> class> Test {> > public> static> void> main(String[] args)> > {> > System.out.println(> 1> /> 0> );> > }> }> |
>
>
Produzione
Exception in thread 'main' java.lang.ArithmeticException: / by zero>
Java lancia
Throws è una parola chiave in Java utilizzata nella firma di un metodo per indicare che questo metodo potrebbe generare una delle eccezioni di tipo elencate. Il chiamante di questi metodi deve gestire l'eccezione utilizzando un blocco try-catch.
Sintassi di Java lancia
type method_name(parameters) throws exception_list exception_list is a comma separated list of all the exceptions which a method might throw.>
In un programma, se c'è la possibilità di sollevare un'eccezione, il compilatore ci avvisa sempre e dobbiamo obbligatoriamente gestire l'eccezione controllata, altrimenti riceveremo un errore in fase di compilazione che dice l'eccezione non segnalata XXX deve essere intercettata o dichiarata per essere lanciata . Per evitare questo errore in fase di compilazione possiamo gestire l'eccezione in due modi:
- Utilizzando try catch
- Utilizzando il lancia parola chiave
Possiamo utilizzare la parola chiave Throws per delegare la responsabilità della gestione delle eccezioni al chiamante (potrebbe essere un metodo o una JVM), quindi il metodo chiamante è responsabile della gestione di tale eccezione.
Java genera esempi
Esempio 1
Giava
// Java program to illustrate error in case> // of unhandled exception> class> tst {> > public> static> void> main(String[] args)> > {> > Thread.sleep(> 10000> );> > System.out.println(> 'Hello Geeks'> );> > }> }> |
>
>
nuvola primaverile
Produzione
error: unreported exception InterruptedException; must be caught or declared to be thrown>
Spiegazione
Nel programma sopra, riceviamo un errore in fase di compilazione perché esiste una possibilità di eccezione se il thread principale va in sospensione, altri thread hanno la possibilità di eseguire il metodo main() che causerà InterruptedException.
Esempio 2
Giava
// Java program to illustrate throws> class> tst {> > public> static> void> main(String[] args)> > throws> InterruptedException> > {> > Thread.sleep(> 10000> );> > System.out.println(> 'Hello Geeks'> );> > }> }> |
>
applicazioni di cloud computing
>
Produzione
Hello Geeks>
Spiegazione
Nel programma sopra, utilizzando la parola chiave Throws abbiamo gestito l'InterruptedException e otterremo l'output come Ciao geek
Esempio 3
Giava
// Java program to demonstrate working of throws> class> ThrowsExecp {> > static> void> fun()> throws> IllegalAccessException> > {> > System.out.println(> 'Inside fun(). '> );> > throw> new> IllegalAccessException(> 'demo'> );> > }> > public> static> void> main(String args[])> > {> > try> {> > fun();> > }> > catch> (IllegalAccessException e) {> > System.out.println(> 'caught in main.'> );> > }> > }> }> |
>
>
Produzione
Inside fun(). caught in main.>
Punti importanti da ricordare sulla parola chiave dei lanci
- la parola chiave Throws è richiesta solo per le eccezioni controllate e l'utilizzo della parola chiave Throws per le eccezioni non controllate non ha senso.
- la parola chiave Throws è necessaria solo per convincere il compilatore e l'utilizzo della parola chiave Throws non impedisce la chiusura anomala del programma.
- Con l'aiuto della parola chiave Throws possiamo fornire informazioni sull'eccezione al chiamante del metodo.