El Java arroja palabra clave se utiliza para declarar una excepción. Le da información al programador de que puede ocurrir una excepción. Por lo tanto, es mejor que el programador proporcione el código de manejo de excepciones para que se pueda mantener el flujo normal del programa.
El manejo de excepciones se utiliza principalmente para manejar las excepciones marcadas. Si ocurre alguna excepción no verificada como NullPointerException, es culpa del programador que no esté verificando el código antes de usarlo.
hacer ejecutable un script de shell
Sintaxis de lanzamientos de Java
return_type method_name() throws exception_class_name{ //method code }
¿Qué excepción se debe declarar?
Años: Sólo excepción marcada, porque:
La ventaja de Java arroja palabras clave
Ahora la excepción marcada se puede propagar (reenviar a la pila de llamadas).
Proporciona información a la persona que llama al método sobre la excepción.
Ejemplo de lanzamientos de Java
Veamos el ejemplo de la cláusula throws de Java que describe que las excepciones marcadas se pueden propagar mediante la palabra clave 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...'); } }Pruébalo ahora
Producción:
int a cadena
exception handled normal flow...
Regla: si llamamos a un método que declara una excepción, debemos detectar o declarar la excepción.
Hay dos casos:
Caso 1: Manejar una excepción usando el bloque try-catch
En caso de que manejemos la excepción, el código se ejecutará bien ya sea que la excepción ocurra durante el programa o no.
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...'); } }Pruébalo ahora
Producción:
exception handled normal flow...
Caso 2: declarar excepción
- En caso de que declaremos la excepción, si no ocurre, el código se ejecutará bien.
- En caso de que declaremos la excepción y se produzca la excepción, se lanzará en tiempo de ejecución porque lanza no maneja la excepción.
Veamos ejemplos para ambos escenarios.
A) Si no ocurre la excepción
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...'); } }Pruébalo ahora
Producción:
comando chown
device operation performed normal flow...
B) Si ocurre una excepción
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...'); } }Pruébalo ahora
Producción:
Diferencia entre lanzamiento y lanzamientos
Haz clic en mí para más detallesQue) ¿Podemos volver a lanzar una excepción?
Sí, lanzando la misma excepción en el bloque catch.