java中的异常处理机制_函数覆盖时的异常特点

/*
注意:异常声明在函数上

异常在子父类覆盖时的体现
1.子类在覆盖父类时,如果父类的方法抛出异常,那么子类的覆盖方法,只能抛出父类的异常或者异常的子类
2.如果父类方法抛出多个异常,那么子类在覆盖该方法时,只能抛出分父类异常的子集。
3.如果父类或者接口的方法中没有异常抛出,那么子类在覆盖方法时,也不可以抛出异常
  如果子类方法发生了异常。就必须要进行try处理,绝对不能抛。
*/

/*特点总结
1.层次关系
   ----AEception
        BException
   ----CException
 
2.逻辑关系
父类的问题,子类继承了,子类出现问题,只能出现父类的问题,而不能出现其它的问题,就像是遗传一样。
*/

class AEception extends Exception
{
    
}
class BException extends AEception
{

    
}
class CException extends Exception
{
    
}

class Fu
{
    void show()throws AEception
    {
        
    }
}
class Text
{
    void funtion(Fu f)
    {
        try
        {
            f.show();    /*调用了有问题的方法,要么抛出去,要么try去接收处理这个异常*/
        }
        catch(AEception e)
        {
            
        }
    }
}
class Zi extends Fu
{
    void show()throws AEception    /*只能抛出A异常或者B异常,不能抛C异常*/
    {
        
    }
}

class Demo
{
    public static void main(String args[])
    {
        Text t=new Text();
        t.funtion(new Zi());
        
    }
}

原文地址:https://www.cnblogs.com/liangqiyuan/p/5589311.html