Clase de método | método getExceptionTypes() en Java

El método java.lang.reflect .Method.getExceptionTypes() de «Clase de método» devuelve una array de Objetos de clase de tipo de excepción declarados como lanzados por el objeto de método para manejar la excepción dentro del método. Todas las excepciones manejadas por el método que usa la cláusula throw, se devuelven como una array de objetos de clase que usan este método. Este método devuelve una array de longitud 0 si el método en el que se aplica este método no declara excepciones en su cláusula throws.

Sintaxis:

public Class<?>[] getExceptionTypes()

Valor devuelto: este método devuelve una array de la clase de excepción declarada mediante la cláusula throw por el objeto de este método

Los siguientes programas ilustran el método getExceptionTypes() de la clase Method:

Ejemplo 1: Imprimir todas las excepciones

/*
* Program Demonstrate getExceptionTypes() method 
* of Method Class.
*/
import java.lang.reflect.Method;
  
public class GFG {
  
    // Main method
    public static void main(String[] args)
    {
        try {
            // create class object
            Class classobj = demoClass.class;
  
            // get list of method Objects
            Method[] methods = classobj.getMethods();
  
            // loop through list
            for (Method method : methods) {
  
                // check for method with there name
                if (method.getName().equals("setValue")
                    || method.getName().equals("getValue")) {
                    // get Exception Types
                    Class[] exceptions = method.getExceptionTypes();
  
                    // print exception Types thrown by method Object
                    System.out.println("Exception Thrown by Method: "
                                       + method.getName());
                    System.out.println("Exception Array length: "
                                       + exceptions.length);
                    for (Class c : exceptions) {
                        System.out.println(c.getName());
                    }
                }
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
}
// a simple class
class demoClass {
  
    // throw some exception by method
    public void setValue(String value)
        throws ClassNotFoundException,
               ArrayIndexOutOfBoundsException,
               ArithmeticException
    {
    }
  
    // method throwing no exception
    public String getValue(String value)
    {
        return value;
    }
}
Producción:

Exception Thrown by Method: getValue
Exception Array length: 0
Exception Thrown by Method: setValue
Exception Array length: 3
java.lang.ClassNotFoundException
java.lang.ArrayIndexOutOfBoundsException
java.lang.ArithmeticException

Ejemplo 2: Verifique si el objeto Método arroja cierta Excepción definida o no. Si es así, imprima verdadero, de lo contrario imprima falso.

// Program Demonstrate getExceptionTypes() method 
// Using getExceptionTypes() method of Method Class
  
import java.lang.reflect.Method;
  
// a simple class
class GFGSampleClass {
  
    String value;
  
    // throw some exception by method
    public void setValue(String value)
        throws ClassNotFoundException,
               ArrayIndexOutOfBoundsException,
               ArithmeticException
    {
        this.value = value;
    }
}
  
public class GFG {
  
    // Main method
    public static void main(String[] args)
    {
        try {
            // create class object
            Class classobj = GFGSampleClass.class;
  
            // get list of method Objects
            Method[] methods = classobj.getMethods();
  
            // loop through list
            for (Method method : methods) {
  
                // check for method with there name
                if (method.getName().equals("setValue")) {
  
                    // check whether method throw
                    // IndexOutOfBoundsException Exception
                    Class exceptionObj = IndexOutOfBoundsException.class;
                    boolean response = isCertainExceptionIsThrown(method,
                                                                  exceptionObj);
                    System.out.println("IndexOutOfBoundsException is "
                                       + "thrown by setValue(): " + response);
                }
            }
        }
        catch (Exception e) {
            e.printStackTrace();
        }
    }
  
    /*
    * Return true if the given method throws the 
    *     exception passed as Parameter.
    */
    private static boolean
    isCertainExceptionIsThrown(Method method, Class<?> exceptionName)
    {
        // get all exception list
        Class exceptions[] = method.getExceptionTypes();
  
        for (int i = 0; i < exceptions.length; i++) {
            // check exception thrown or not
            if (exceptions[i] == exceptionName) {
                return true;
            }
        }
  
        return false;
    }
}
Producción:

IndexOutOfBoundsException is thrown by setValue(): false

Referencia:
https://docs.oracle.com/javase/8/docs/api/java/lang/reflect/Method.html#getExceptionTypes–

Publicación traducida automáticamente

Artículo escrito por AmanSingh2210 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *