Day18 异常Exception

1. final,finally 和 finalize的区别

a. final 最终的意思,修饰类,变量(成员变量和局部变量),成员方法
修饰类之后,该类不能被继承
修饰变量之后,该变量变成自定义常量
修饰方法之后,该方法不能被子类覆盖

b. finally 修饰代码块
finally代码块的执行特征是:
1. 对于try-catch-finnally代码块而言,finally代码块中的代码,不管是否发生异常,
finally代码块中的代码,最后都会执行
2. 即使在finally代码块之前,有return语句,finally代码块,仍然会执行
3. 特殊情况不执行:在执行到finally之前jvm退出了(比如System.exit(0))

c. finalize()
Object类中的一个方法.该方法,在对象变成垃圾,并且被垃圾回收期调用之前,jvm会在该对象上调用 finalize()方法一次且一次.

2. 定义三种新类型的异常。 写一个类,在该类的三个方法中抛出三种不同的异常。 然后在mian方法中调用这个类的不同方法,尝试用try catch捕获你写的异常。

public class day1802 {
    public static void main(String[] args) {
        //创建子类对象
        ExceptionCast exceptionCast = new ExceptionCast();
        //处理第一种自定义编译时异常
        try {
            exceptionCast.genFirstException();
        } catch (MyFirstException e) {
            e.printStackTrace();
        }
        //处理第二种自定义运行时异常
        try {
            exceptionCast.genSecondException();
        } catch (Exception e) {
            e.printStackTrace();
        }
        //处理第三种自定义编译时异常
        try {
            exceptionCast.genThirdException();
        } catch (MyThirdException e) {
            e.printStackTrace();
        }
    }
}

class ExceptionCast {
    //抛出第一种编译时异常方法
    public void genFirstException() throws MyFirstException {
        throw new MyFirstException("第一种编译时类型的异常");
    }
    //抛出第二种运行时异常方法
    public void genSecondException() {
        throw new MySecondException("第二种运行时类型的异常");
    }
    //抛出第二种编译时异常方法
    public void genThirdException() throws MyThirdException {
        throw new MyThirdException("第三种编译时类型的异常");
    }
}

//三个自定义的类

    //第一种自定义编译时异常
class MyFirstException extends Exception {
    public MyFirstException(String msg) {
        super(msg);
    }
}
    //第二种自定义运行时异常
class MySecondException extends RuntimeException {
    public MySecondException(String msg) {
        super(msg);
    }
}
    //第三种自定义编译时异常
class MyThirdException extends Exception {
    public MyThirdException(String msg) {
        super(msg);
    }
}

定义三个异常,然后定义一个ExceptionCast类,类中含有抛出三个异常的方法.最后在main方法中调用方法,用try-catch捕获异常.

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值