Subclase de excepción incorporada
En el paquete estándar java.lang, Java define varias clases de excepción. Algunos de estos se usaron en los ejemplos anteriores. Estas excepciones son generalmente subclases de la clase RuntimeException estándar. Debido a que Java.lang es realmente introducido por todos los programas de Java, la mayoría de las excepciones derivadas de RuntimeException están disponibles automáticamente. Además, no necesitan ser incluidos en la lista de lanzamientos de ningún método. En Java, esto se llama una excepción sin control. Porque el compilador no lo verifica para ver si un método maneja o arroja estas excepciones. Las excepciones sin control definidas en java.lang se enumeran en la Tabla 1. La Tabla 2 enumera las excepciones que deben incluirse en la lista de lanzamientos de métodos definidos por Java.lang, si estos métodos pueden generar una de las excepciones pero no pueden manejarlo por sí mismos. Estos se llaman excepciones verificadas. Java define varios otros tipos de excepción relacionados con diferentes clases de biblioteca.
Tabla 1: Subclase de excepción sin control definida en Java.lang en Java
Tabla 2: Verifique la excepción definida en java.lang
Crea tu propia subclase de excepción usando Java
Aunque las excepciones incorporadas de Java manejan los errores más comunes, es posible que desee construir su propio tipo de excepción para manejar los casos especiales que está aplicando. Esto es muy simple: solo defina una subclase de excepción (la excepción es, por supuesto, una subclase de lanzamiento). Sus subclases no necesitan hacer nada: su presencia en el sistema de tipos le permite usarlas como excepciones.
La clase de excepción en sí no define ningún método. Por supuesto, hereda algunos de los métodos proporcionados por Throwable. Por lo tanto, todas las excepciones, incluidas las que crea, pueden obtener el método definido lanzable. Estos métodos se muestran en la Tabla 3. También puede anular uno o más de estos métodos en la clase de excepción que cree.
Métodos de la Tabla 3 definidos por lanzamiento
El siguiente ejemplo declara una nueva subclase de excepción, que luego se usa como señal para un error en el método. Sobrecarga el método toString (), de modo que la descripción de la excepción se puede mostrar con println ().
// Este programa crea un tipo de excepción personalizada. Class MyException extiende la excepción {Private int Detail; } Class ExceptionDemo {Static void Compute (int a) lanza myException {system.out.println ("llamado compute (" + a + ")"); .println ("Salida normal"); e);
Este ejemplo define una subclase de excepción myException. Esta subclase es muy simple: contiene solo un constructor y un método ToString () sobrecargado que muestra valores atípicos. La clase ExceptionDemo define un método Compute (). Este método arroja un objeto MyException. Esta excepción se eleva cuando el parámetro entero de Compute () es mayor que 10.
El método Main () establece un controlador de excepción para MyException, y luego llama a Compute () con un valor legal y un valor ilegal para mostrar diferentes rutas de ejecución a través del código. Aquí están los resultados:
Llamado Compute (1) Compute de salida normal (20) atrapó a MyException [20]