其他分享
首页 > 其他分享> > 298/299异常注意事项_finally有returm语句和子父类异常

298/299异常注意事项_finally有returm语句和子父类异常

作者:互联网

异常注意事项_finally有returm语句

运行时异常被抛出可以不处理。即不捕获也不声明抛出。

如果 finally有 return语句永远返回 Finally中的结果避免该情况

 

 子父类异常

如果父类抛出了多个异常子类覆盖父类方法时只能抛出相同的异常或者是他的子集。

父类方法没有抛出异常,子类覆盖父类该方法时也不可抛出异常。

此时子类产生该异常,只能捕获处理,不能声明抛出在 try/catch后可以追加 finally代码块,其中的代码一定会被执行,通常用于资源回收。

 

子父类的异常如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不批出昇常父类方法没有拋岀异常,

子类重写父类该方法时也不可抛岀舁常。此时子类产生该舁常,只能捕获处理,不能声明批岀意父类异常时什么样,子类异常就什么样

 

public class Fu {

        public void show01() throws NullPointerException,ClassCastException{}
        public void show02() throws IndexOutOfBoundsException{}
        public void show03() throws IndexOutOfBoundsException{}
        public void show04(){}
class Zi extends Fu{
    //子类重写父类方法时,抛出和父类相同的异常
    public void show01() throws NullPointerException,ClassCastException{}//子类重写父类方法时,抛出父类异常的子类
    public void show02( ) throws ArrayIndexOutOfBoundsException{}//子类重写父类方法时,不抛出异常
    public void show03(){}

       // public void show04( ) throws Exception{}
        //此时子类产生该异常,只能捕获处理,不能声明抛出
        public void showe4(){
        try {
            throw new Exception("编译期异常");
        } catch (Exception e) {
         e.printStackTrace();
        }
        }
    }



----------------------------------------------------------------------------------------------- package com.learn.demo03.Exception; /* 子父类的异常: - 如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常。 - 父类方法没有抛出异常,子类重写父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出 注意: 父类异常时什么样,子类异常就什么样 */ public class Fu { public void show01() throws NullPointerException,ClassCastException{} public void show02() throws IndexOutOfBoundsException{} public void show03() throws IndexOutOfBoundsException{} public void show04() throws Exception {} } class Zi extends Fu{ //子类重写父类方法时,抛出和父类相同的异常 public void show01() throws NullPointerException,ClassCastException{} //子类重写父类方法时,抛出父类异常的子类 public void show02() throws ArrayIndexOutOfBoundsException{} //子类重写父类方法时,不抛出异常 public void show03() {} /* 父类方法没有抛出异常,子类重写父类该方法时也不可抛出异常。 */ //public void show04() throws Exception{} //此时子类产生该异常,只能捕获处理,不能声明抛出 public void show04() { try { throw new Exception("编译期异常"); } catch (Exception e) { e.printStackTrace(); } } }

 

标签:returm,子类,void,和子,抛出,父类,异常,public
来源: https://www.cnblogs.com/agzq/p/16455932.html