Java面向对象6-异常处理

1、try、catch、finally、throw、throws
2、try块有return的情况下,finally中的代码也会被执行(先执行finally,再执行return),但是System.exit(0)是终止当前的虚拟机执行,即立即停止程序,这时finally中的代码就不会被执行了
3、哪些代码会放在finally?关闭DB资源、关闭IO流资源、关闭socket资源
4、常见异常:InputMismatchException、ArithmeticException、IllegalArgumentException、NumberFormatException、NullPointerException、RuntimeException、ArrayIndexOutOfBoundsException、ClassNotFoundException、InstantiationException、IllegalAccessException
5、多个catch的情况,将特殊异常放在前面,先子类异常、后父类异常,并列异常可以加|进行串接(JDK1.7之后)
6、异常的分类

在这里插入图片描述
**前提:程序中语法错误、逻辑错误,都不属于错误、异常
(1)运行时异常
写代码时不用特意对异常进行处理,在程序运行以后,系统自动检测,然后报出异常
例如:NullPointerException、ArrayIndexOutOfBoundsException
(2)检查异常
在程序运行之前,检测到可能出现异常,使用try/catch块包裹,提前给出解决方案,防患于未然
例如:ClassNotFoundException、InstantiationException、IllegalAccessException
7、throw和throws的区别
(1)位置不同
throw写在方法内部,throws写在方法的签名处、方法的声明处
(2)内容不同
throw+异常对象(检查异常、运行时异常),throws+异常类型(可以多个类型,用,拼接)
(3)作用不同
throw异常出现的源头,制造异常,throws在方法的声明处,告诉方法的调用者,这个方法中可能会出现我声明的这些异常,然后调用者对这个异常进行处理,要么自己处理,要么再继续向外抛出异常
**

package yes.javase.oop.javase_220304_exception_test3;

import java.util.Scanner;

public class Test {
    public static void main(String[] args) {
        try {
            System.out.println(devide());
        } catch (Exception e) {
            e.printStackTrace();
        }
        ;
    }
    public static int devide() throws Exception {
        Scanner sc = new Scanner(System.in);
        int num1 = sc.nextInt();
        int num2 = sc.nextInt();
        int dev;
        if (num2 == 0){
            //制造运行时异常
//            throw new RuntimeException();
            //制造检查时异常-内部解决
//            try {
//                throw new Exception();
//            } catch (Exception e) {
//                e.printStackTrace();
//            }
            //制造检查时异常-抛出异常
            throw new Exception();
        }else {
            dev = num1/num2;
        }
        return dev;
    }
}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值