Java中的构造函数 getGenericExceptionTypes() 方法和示例
Java.lang.reflect.Constructor 类的getGenericExceptionTypes()方法用于将该构造函数对象上存在的异常类型作为数组返回。返回的对象数组表示声明为此构造函数对象抛出的异常。如果此构造函数在其 throws 子句中未声明任何异常,则此方法返回一个长度为 0 的数组。
句法:
public Type[] getGenericExceptionTypes()
参数:此方法不接受任何内容。
Return :此方法返回一个类型数组,表示底层可执行文件抛出的异常类型。
异常:此方法抛出以下异常:
- GenericSignatureFormatError:如果泛型方法签名不符合Java™ 虚拟机规范中指定的格式。
- TypeNotPresentException:如果底层可执行文件的 throws 子句引用了不存在的类型声明。
- MalformedParameterizedTypeException:如果底层可执行文件的 throws 子句引用了由于任何原因无法实例化的参数化类型。
下面的程序说明了 getGenericExceptionTypes() 方法:
方案一:
// Java program to illustrate
// getGenericExceptionTypes() method
import java.io.IOException;
import java.lang.reflect.*;
public class GFG {
public static void main(String[] args)
{
// create a class object
Class classObj = shape.class;
// get Constructor object
// array from class object
Constructor[] cons
= classObj.getConstructors();
// get array of GenericExceptionTypes
Type[] exceptions
= cons[0].getGenericExceptionTypes();
// print length of GenericExceptionTypes array
System.out.println("GenericExceptions : ");
for (int i = 0; i < exceptions.length; i++)
System.out.println(exceptions[i]);
}
// demo class
public class shape {
public shape() throws IOException,
ArithmeticException,
ClassCastException
{
}
}
}
输出:
GenericExceptions :
class java.io.IOException
class java.lang.ArithmeticException
class java.lang.ClassCastException
方案二:
// Java program to illustrate
// getGenericExceptionTypes() method
import java.lang.reflect.Constructor;
import java.lang.reflect.Type;
public class GFG {
public static void main(String[] args)
{
// create a class object
Class classObj = String.class;
// get Constructor object
// array from class object
Constructor[] cons
= classObj.getConstructors();
// get array of GenericExceptionTypes
Type[] exceptions
= cons[0].getGenericExceptionTypes();
// print length of GenericExceptionTypes array
System.out.println(
"No of Generic Exception thrown : "
+ exceptions.length);
}
}
输出:
No of Generic Exception thrown : 0
参考: https: Java/lang/reflect/Constructor.html#getGenericExceptionTypes()