El Java llança la paraula clau s'utilitza per declarar una excepció. Dóna informació al programador que pot produir-se una excepció. Per tant, és millor que el programador proporcioni el codi de gestió d'excepcions perquè es pugui mantenir el flux normal del programa.
El maneig d'excepcions s'utilitza principalment per gestionar les excepcions marcades. Si es produeix alguna excepció no marcada, com ara NullPointerException, és culpa dels programadors que no estigui comprovant el codi abans d'utilitzar-lo.
pàgines del servidor java
Sintaxi de llançaments de Java
return_type method_name() throws exception_class_name{ //method code }
Quina excepció s'ha de declarar?
Anys: Només l'excepció marcada, perquè:
Avantatge de la paraula clau Java llança
L'excepció ara seleccionada es pot propagar (enviada a la pila de trucades).
Proporciona informació a la persona que truca del mètode sobre l'excepció.
Exemple de llançaments de Java
Vegem l'exemple de la clàusula throws de Java que descriu que les excepcions marcades es poden propagar mitjançant la paraula clau throws.
Testthrows1.java
import java.io.IOException; class Testthrows1{ void m()throws IOException{ throw new IOException('device error');//checked exception } void n()throws IOException{ m(); } void p(){ try{ n(); }catch(Exception e){System.out.println('exception handled');} } public static void main(String args[]){ Testthrows1 obj=new Testthrows1(); obj.p(); System.out.println('normal flow...'); } }Prova-ho ara
Sortida:
exception handled normal flow...
Regla: si estem cridant a un mètode que declara una excepció, hem de detectar o declarar l'excepció.
Hi ha dos casos:
Cas 1: gestionar l'excepció mitjançant el bloc try-catch
En cas que gestionem l'excepció, el codi s'executarà bé tant si es produeix una excepció durant el programa com si no.
usuaris de la llista mysql
Testthrows2.java
import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } public class Testthrows2{ public static void main(String args[]){ try{ M m=new M(); m.method(); }catch(Exception e){System.out.println('exception handled');} System.out.println('normal flow...'); } }Prova-ho ara
Sortida:
exception handled normal flow...
Cas 2: declarar l'excepció
- En cas que declarem l'excepció, si no es produeix l'excepció, el codi s'executarà bé.
- En cas que declarem l'excepció i es produeixi l'excepció, es llançarà en temps d'execució perquè llançaments no gestiona l'excepció.
Vegem exemples per a tots dos escenaris.
inicialització de primavera
A) Si no es produeix una excepció
Testthrows3.java
import java.io.*; class M{ void method()throws IOException{ System.out.println('device operation performed'); } } class Testthrows3{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } }Prova-ho ara
Sortida:
device operation performed normal flow...
B) Si es produeix una excepció
Testthrows4.java
import java.io.*; class M{ void method()throws IOException{ throw new IOException('device error'); } } class Testthrows4{ public static void main(String args[])throws IOException{//declare exception M m=new M(); m.method(); System.out.println('normal flow...'); } }Prova-ho ara
Sortida:
Diferència entre llançament i llançament
Feu clic a mi per obtenir més informacióQue) Podem tornar a llançar una excepció?
Sí, llançant la mateixa excepció al bloc catch.