异常捕捉时的匹配与异常遇到继承
异常捕捉时的匹配
catch怎么匹配异常的
Is-A的关系
就是说,抛出子类异常会被捕捉父类异常catch给捉到
捕捉任何异常
运行时刻异常
像ArrayIndexOutOfBoundsException这样的异常是不需要声明的
但是如果没有适当的机制来捕捉,就会最终导致程序终止
异常遇到继承
异常声明
如果你的函数可能抛出异常,就必须在函数头部加以声明
你可以声明并不会真的抛出的异常
如果你调用一个声明会抛出异常的函数,那么你必须:
把函数的调用放在try块中,并设置catch来捕捉所有可能抛出的异常;
或声明自己会抛出无法处理的异常
异常声明遇到继承关系
当覆盖一个函数的时候,子类不能声明抛出比父类的版本更多的异常
在子类的构造函数中,必须声明父类可能抛出的全部异常