不能抛出或捕获泛型类的实例

即不能抛出也不能捕获泛型类对象。实际上,甚至泛型类扩展Throwable都是不合法的。

例如,以下定义就不能正常编译

public class Problem<T> extends Exception{
    /* ... */
}//ERROR -- cant't extend Throwable

catch子句中不能使用类型变量。例如,以下方法将不能编译:

public static <T extends Throwable> void doWork(Class<T> t){
    try{
        do work
    }catch(T e) //ERROR -- can't catch type variable
    {
        Logger.global.info(...)
    }
}

不过,在异常规范中使用类型变量是允许的。以下方法是合法的:

results matching ""

    No results matching ""