JAVAEE细细看 进阶 06 - 异常

1 篇文章 0 订阅
1 篇文章 0 订阅

异常

在这里插入图片描述

一. JVM的默认处理方案

a. 把异常名称,原因,异常出现的位置灯信息输出在控制台
b. 程序停止执行
这明显是不行的

二. try catch

在这里插入图片描述

三. Throwable(异常的超类) 的成员方法

public String getMessage() // 详细信息
public String toString() // 简短描述
public void printStackTrace() // 异常信息输出在控制台

public static void method() {
    try {
        int[] arr = {1, 2, 3};
        System.out.println(arr[3]); 
        System.out.println("这里能够访问到吗");
    } catch (ArrayIndexOutOfBoundsException e) { 
        e.printStackTrace();
        System.out.println("--------");
        System.out.println(e.getMessage());
        System.out.println("--------");
        System.out.println(e.toString());
    }
}

四. 编译时异常和运行时异常

Java 中的异常被分为两大类:编译时异常和运行时异常,也被称为受检异常和非受检异常
所有的 RuntimeException 类及其子类的实例被称为运行时异常,其他的异常都是编译时异常

编译时异常:必须显示处理,否则程序就会发生错误,无法通过编译
运行时异常:无需显示处理,也可以和编译时异常一样处理

五. 自定义异常
异常类
public class ScoreException extends Exception{

    public ScoreException() {}

    public ScoreException(String message) {
        super(message);
    }

}

老师类 (抛出异常)
public void checkScore(int score) throws ScoreException{
    if(score >=100 || score < 0) {
        throw new ScoreException("分数不合法");
    } else {
        System.out.println("分数是:" + score);
    }
}

测试类
public class ExceptionDemo {
    public static void main(String[] args) {
        Teacher te = new Teacher();
        try {
            te.checkScore(120);
        } catch (ScoreException e) {
            e.printStackTrace();
        }
    }
}

六. throws 和 throw 的区别

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值