Hay 2 ejemplos a continuación. Uno muestra que todos los métodos de llamada también necesitan manejar excepciones lanzadas por el método de llamada. El otro muestra que la superclase se puede usar para detectar o manejar excepciones de subclase.
El método de la persona que llama debe manejar las excepciones generadas por el método de la persona que llama
Aquí hay un programa que maneja excepciones. Simplemente pruebe eso, si se lanza una excepción en un método, no solo ese método, sino también todos los métodos que llaman a ese método tienen que declarar o lanzar esa excepción.
public class exceptionTest { private static Exception exception; public static void main(String[] args) throws Exception { callDoOne(); } public static void doOne() throws Exception { throw exception; } public static void callDoOne() throws Exception { doOne(); } } |
La superclase se puede usar para detectar o manejar excepciones de subclase
Lo siguiente también está bien, porque la superclase se puede usar para detectar o manejar excepciones de subclase:
class myException extends Exception{ } public class exceptionTest { private static Exception exception; private static myException myexception; public static void main(String[] args) throws Exception { callDoOne(); } public static void doOne() throws myException { throw myexception; } public static void callDoOne() throws Exception { doOne(); throw exception; } } |
Esta es la razón por la que solo una clase padre en la cláusula catch es sintácticamente segura.