Java异常基础2
? ? 1. 声明异常的规则
? ? ?必须声明方法可能抛出的可检测异常
? ? ?非检测异常不是必须的,可声明,也可不声明
? ? ?调用方法必须遵守任何可检测异常的处理或声明规则。若覆盖一个方法,则不能声明与覆盖方法不同的异常。声明的任何异常必须是被覆盖方法所声明异常的同类或子类。
? ? ?我们来看以一个例子:
public FileInputStream(File file) throws FileNotFoundException {String name = (file != null ? file.getPath() : null);SecurityManager security = System.getSecurityManager();if (security != null) {security.checkRead(name);}if (name == null) {throw new NullPointerException();}fd = new FileDescriptor();fd.incrementAndGetUseCount();open(name);}? ?这里FileNotFoundException是可检测异常,所以给予了声明;而NullPointException是非检测异常,所以可以声明也可以不声明。
? ?2. 可检测异常和非检测异常
? ?前面讲了可检测异常和非检测异常,那么到底什么事可检测异常呢?
? ?可检测异常指的是除了Error和Exception下的RuntimeExcption异常之外的所有异常。其中RuntimeException指的是NullPointerException, ArithmeticException, ArrayIndexOutOfBoundExcption这种异常。
?
?