异常注意事项_子父类异常和自定义异常类

子父类的异常:
- 如果父类抛出了多个异常,子类重写父类方法时,抛出和父类相同的异常或者是父类异常的子类或者不抛出异常。
- 父类方法没有抛出异常,子类重写父类该方法时也不可抛出异常。此时子类产生该异常,只能捕获处理,不能声明抛出
注意:
父类异常时什么样,子类异常就什么样

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

自定义异常类

为什么需要自定义异常类:

我们说了Java中不同的异常类,分别表示着某一种具体的异常情况,那么在开发中总是有些异常情况是SUN没有定义好的,此时我们根据自己业务的异常情况来定义异常类。例如年龄负数问题,考试成绩负数问题等等。

在上述代码中,发现这些异常都是IDK内部定义好的,但是实际开发中也会出现很多异常,这些异常很可能在JDK中没有定义过,例如年龄负数问题,考试成绩负数问题.那么能不能自己定义异常呢?

 

自定义异常类;
  java提供的异常类,不够我们使用,需要自己定义一些异常类

格式:
  public class XXXExcepiton extends Exception / RuntimeException{

添加一个空参数的构造方法

添加一个带异常信息的构造方法

注意:

  1.自定义异常类一般都是以Exception结尾,说明该类是一个异常类

  2.自定义异常类,必须的继承Exception或者RuntimeException

    继承Exception:那么自定义的异常类就是一个编译期异常,如果方法内部批出了编译期异常,就必须处理这个异常,要么throws ,要么try . ..catch

    继承RuntimeException:那么自定义的异常类就是一个运行期异常,无需处理,交给虚拟机处理(中断处理)

复制代码
public class Excetepion extends Exception{
    public Excetepion() {
        super();
    }

    //  添加一个带异常信息的构造方法
    //  查看源码发现,所有的异常类都会有一个带异常信息的构造方法,方法内部会调用父类带异常信息的拘造方法,让父类来处理这个异常信息*/
    public Excetepion(String message) {
        super(message);
    }
}
复制代码

 

posted @   夫君  阅读(54)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示