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(); } } }
复制代码

 

posted @   ja不会va  阅读(22)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
点击右上角即可分享
微信分享提示