任何人都可以解释“泛型异常”的含义以及Java语言环境中“泛型”的含义吗?
答案 0 :(得分:1)
捕获某个异常类层次结构中较高的异常 - 例如直接捕获Exception
:
catch(Exception e) { ... }
您通常应该捕获尽可能具体的异常,例如IOException
而不是Exception
如果可能会抛出IOException
。
答案 1 :(得分:0)
在这种情况下,“通用”一词在正常的英语意义上使用:即“不具体”。
它指的是异常类层次结构顶部附近的异常类。
请注意,异常类不能是通用类的Java意义上的泛型类。 JLS说:
“请注意,Throwable的子类不能是通用的(第8.1.2节)。” - JLS §11.1.1
答案 2 :(得分:0)
繁忙的程序员可以简单地将方法调用包装在捕获通用异常的try / catch块中,而不是为try块添加不同的catch块,而不是像这样
try{
}
catch(Exception e)
{}
此方法称为通用异常处理
在这种情况下,catch
块有时会捕获它从未打算捕获的异常。
例如,有时可能会发现NullPointerException
是RuntimeException
的子类,而Exception
的子类又是catch(Exception e)
的子类,即使您从未想过您的代码可能会结束抓住那个例外。
因此,通用NullPointerException
捕获RuntimeException的所有子类,包括IndexOutOfBoundsException
,{{1}}等。通常,程序员不打算捕获这些异常< / p>