什么是“通用例外”?

时间:2014-07-12 14:42:00

标签: java exception generics

任何人都可以解释“泛型异常”的含义以及Java语言环境中“泛型”的含义吗?

3 个答案:

答案 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块有时会捕获它从未打算捕获的异常。

例如,有时可能会发现NullPointerExceptionRuntimeException的子类,而Exception的子类又是catch(Exception e)的子类,即使您从未想过您的代码可能会结束抓住那个例外。

因此,通用NullPointerException捕获RuntimeException的所有子类,包括IndexOutOfBoundsException,{{1}}等。通常,程序员不打算捕获这些异常< / p>