Cualquier código Java puede lanzar excepciones, como: código escrito por usted mismo, código del paquete de entorno de desarrollo Java o el sistema de tiempo de ejecución Java. No importa quién sea, puedes lanzar una excepción a través de la declaración de lanzamiento de Java. Cualquier excepción lanzada desde el método debe usarse con la cláusula de lanzamiento.
1. Lanza una excepción de lanzamiento
Si un método puede tener una excepción pero no tiene la capacidad de manejar tal excepción, puede usar la cláusula de lanzamiento para declarar la excepción lanzada a la declaración del método. Por ejemplo, un automóvil puede fallar cuando se ejecuta, y el automóvil en sí no puede manejar esta falla, así que deje que el conductor se ocupe de él.
La declaración de lanzamiento se utiliza para declarar el tipo de excepción para lanzar cuando se define el método. Se pueden dividir múltiples excepciones usando comas. El formato de sintaxis de la declaración de lanzamientos es:
MethodName lanza Exception1, Exception2, .., ExceptionN
{
}
Lanza después del nombre del método Exception1, Exception2, ..., ExceptionN es la lista de excepciones que se lanzarán. Cuando un método lanza una lista de excepciones de excepciones, el método no manejará excepciones de estos tipos y sus tipos de subclase, pero se lanzará al método que llama al método y será manejado por él. Por ejemplo:
import java.lang.Exception; (String [] args) {// Método principal intenta {// Prueba de instrucción Manejas la información de excepción pop (); excepción lanzada "); // Información de excepción de salida}}}
Después de lanzar la excepción a la persona que llama usando la palabra clave de lanzamiento, si la persona que llama no quiere manejar la excepción, puede continuar tirando, pero al final debe haber una persona que llama que puede manejar la excepción.
El método POP no maneja la excepción de NegatiVearRaysizeException, sino que la función principal maneja.
La regla de lanzamientos para lanzar excepciones:
1) Si se trata de una excepción sin control, es decir, error, runtimeException o sus subclases, puede declarar la excepción que se lanza sin usar la palabra clave de lanza, y la compilación aún pasará sin problemas, pero el sistema la ejecutará durante el sistema durante el sistema durante el sistema. tiempo de ejecución.
2) Cualquier excepción verificada que pueda ser lanzada por el método debe ser declarada. Es decir, si un método puede tener una excepción controlable, se atrapará con una declaración de prueba de prueba o se declarará con una cláusula de lanzamiento, de lo contrario causará un error de compilación.
3) Solo cuando se lanza una excepción, la persona que llama del método debe manejar o rehacer la excepción. Cuando la persona que llama no puede manejar la excepción, debe continuar lanzándolo en lugar de tragarlo todo.
4) El método de llamadas debe seguir cualquier regla de manejo de excepciones y declaraciones de excepción. Si se sobrescribe un método, no se pueden declarar excepciones diferentes del método sobrescribido. Cualquier excepción declarada debe ser una o subclase similar o una subclase de la excepción declarada por el método anulado.
Por ejemplo:
La base para determinar que puede ocurrir una excepción en un método es la siguiente:
1) Hay una declaración de lanzamiento en el método. Por ejemplo, el bloque de código de captura del método de método 7 () anterior tiene una declaración de lanzamiento.
2) Se llaman otros métodos, y otros métodos usan la cláusula de lanzamiento para declarar alguna excepción para lanzar. Por ejemplo, el método Method3 () llama al método Method1 (), y el método Method1 () declara que se lanza una IOException, por lo que puede ocurrir una IOException en el método Method3 ().
2. Use la excepción de lanzamiento para lanzar
El lanzamiento siempre aparece en el cuerpo de la función y se usa para lanzar una excepción de tipo que se puede lanzar. El programa terminará inmediatamente después de la declaración de lanzamiento, la declaración después de no se puede ejecutar, y luego en todos los bloques de try que lo contienen (tal vez en la función de llamadas de nivel superior) busque bloques de try que contengan la cláusula de captura que lo coincide con el de adentro hacia afuera.
Sabemos que las excepciones son objetos de instancia de clase de excepción, y podemos crear objetos de instancia de clase de excepción que se lanzarán a través de la declaración de lanzamiento. El formato de sintaxis de esta declaración es:
arrojar un nuevo nombre de excepción;
Por ejemplo, arroje un objeto de excepción de la clase IOException:
tirar nueva IOException;
Cabe señalar que lanza solo objetos de instancia que pueden lanzar una clase tirada o subclases. La siguiente operación es incorrecta:
tirar nueva cadena ("excepción");
Esto se debe a que la cadena no es una subclase de la clase lanzable.
Si se lanza una excepción de verificación, también debe declarar el tipo de excepción que el método puede lanzar en el encabezado del método. La persona que llama de este método también debe verificar para manejar la excepción lanzada.
Si todos los métodos arrojan la capa de excepción adquirida por capa, el JVM eventualmente la procesará, y el procesamiento también es muy simple, que es imprimir el mensaje de excepción y la información de la pila. Si se lanza un error o RuntimeException, la persona que llama tiene la opción de manejar la excepción.
prueba de paquete; 0 tirar nueva MyException ("El divisor no puede ser un número negativo"); ; .out.println (e. getMessage ()); Catch (excepto en e) {// manejar otras excepciones system.out.println ("Otra excepción ocurrió en el programa"); Mensaje de cadena; / Definir Tipo de cadena Public My Exception (String ErrorMessagr) {// Método de clase principal = ErrorMessagr;