是的,可以抛出该异常的子类
异常在子父类覆盖中的体现
1.子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者该异常的子类
2.如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出父类异常的子集
3.如果父类或者接口的方法中没有抛出异常,那么子类在覆盖方法时也不可以抛出异常
如果子类方法发生了异常,就必须要进行try处理,绝对不能抛
如下面的代码:
- class AException extends Exception{
- }
- class BException extends AException{
- }
- class CException extends Exception{
- }
- class DException extends CException{
- }
- class EException extends Exception{
- }
- class Fu{
- public void show()throws AException,CException{}
- }
- class Zi extends Fu{
- /*子类可以抛出AException或者BException,DException,如果AException有其他的子类那么
- 不能抛出EException,也就是说父类抛出的异常或者该异常的子类都可以,父类有多个异常,子类可以抛出
- 那些异常的子类,就是子集*/
- public void show()throws AException,BException,DException{}
- }
- public class ExceptionDemo {
- public static void main(String[] args) throws Exception{
- }
- }
复制代码
|