自定义异常作为已检查的异常

时间:2015-03-22 21:14:23

标签: java exception exception-handling

在Java中,如果我们通过扩展Exception类来创建自定义异常,那么它将被视为已检查的异常。根据定义,编译器强制检查异常,如果我们在下面编写代码,那么我们必然会捕获FileNotFoundException

try{
  fis = new FileInputStream("abc.txt");

}

catch(FileNotFoundException e)
{
  System.out.println("The source file does not exist. " + e);
}   

为了调用自定义异常,我需要显式抛出它。那么如何检查呢?它应该是未选中的,因为编译器不会强迫我做任何事情。

此致 筛海

1 个答案:

答案 0 :(得分:0)

选中/未选中是指使用您的方法抛出异常的代码处理异常的要求。

假设您在方法中抛出一个未经检查的异常(RuntimeException或其子类)。您无需表示您的方法会抛出它,并且任何使用您的代码的人都不需要显式处理它。

但是,如果抛出已检查的异常(异常不是RuntimeException的子类),那么您的方法必须明确地说它抛出异常,并且任何使用您的代码的人都必须处理该异常 - 或者通过将它们的方法声明为抛出的方法一个异常(重新抛出)或使用try-catch块,围绕调用抛出已检查异常的方法。