Java中运行时异常类解析

Java中运行时异常类解析

Throwable类异常类的父类:
在这里插入图片描述
detaiMessage异常类的父类中定义的属性;
在这里插入图片描述
getMessage方法用用以返回detailMessage的值;
在这里插入图片描述
异常类的无参构造方法和有参构造方法:
在这里插入图片描述
运行时异常类的无参构造方法和有参构造方法:
在这里插入图片描述
自定义年龄异常类继承自运行时异常类;

package person;

public class AgeException extends RuntimeException {
    public AgeException() {
    }

    public AgeException(String message) {
        super(message);

    }
}

调用年龄异常类的代码块:

 public void setAge(int age) {
        if (age>0&&age<120){
            this.age = age;
        }else {
            try {
                throw new AgeException("年龄不存在");
            }catch (AgeException e){
                System.out.println(e.getMessage());

            }

        }

    }

运行结果:

请输入您的年龄:
129
请输入您的性别:
男
年龄不存在
该人物的年龄为:0性别:男

解析:自定义异常类继承了运行时异常类,运行时异常又继承了异常类,而异常类则继承了Throwable类,最终将 throw new AgeException(“年龄不存在”)中的值传给了Throwable类中的getMessage方法,然后子类对象调用getMessage方法,得到一个友好的信息;如果不是try{}catch(){}语句则由虚拟机输出堆栈信息, 通过子类对象调用printStackTrace()方法也可以得到堆栈信息。

这里抛出的是一个空指针异常:

   try {
                if (c1[i].getId() != 0) {
                    System.out.println(c1[i].getId() + "\t" + c1[i].getPrice() + "\t\t" + c1[i].getName());
                }
            } catch (NullPointerException e) {
                System.out.print("\t");
            }

数组下标越界异常:

 try{
                    i1[i] = 1;
                }catch (Exception e){
                    System.out.println("数组下标越界");
                    System.out.println("循环结束");
                    for (int j = 0; j <5 ; j++) {
                        System.out.println(i1[j]);
                    }
                    System.exit(0);
                }

在运行时异常类家族中还有几种常用的异常类,它们的结构类似,用法相似,我就不一一列举了。其原理和自定义异常类相似,它们是JavaSE中定义的功能更加强大,自定义异常类需要主动抛出。

分享结束

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值