Java中的异常

异常

  • 概述:
    • 指的是程序在执行过程中,出现的非正常的情况,最终会导致JVM的非正常停止。

  • 异常(Exception)的分类:
    • 编译时期异常:checked异常。在编译时期,就会检查,如果没有处理异常,则编译失败。(如期格式化异常)

    • 运行时期异常:runtime异常。在运行时期,检查异常.在编译时期,运行异常不会编译器检测(不报错)。(如数学异常)

    • 异常的处理

    • Java异常处理的五个关键字:try、catch、finally、throw、throws

      • throws

      • public class ThrowsDemo {
        public static void main(String[] args) throws FileNotFoundException {
        read("a.txt");
        }
        // 如果定义功能时有问题发生需要报告给调用者。可以通过在方法上使用throws关键字进行声明
        public static void read(String path) throws FileNotFoundException {
        if (!path.equals("a.txt")) {//如果不是 a.txt这个文件
        // 我假设 如果不是 a.txt 认为 该文件不存在 是一个错误 也就是异常 throw
        throw new FileNotFoundException("文件不存在");
            }
          }
        }

        捕获异常try…catch

      • 格式:

      • try{
        编写可能会出现异常的代码
        }catch(异常类型 e){
        处理异常的代码
        //记录日志/打印异常信息/继续抛出异常
        }
        

        示例:

      • public class TryCatchDemo {
        public static void main(String[] args) {
        try {// 当产生异常时,必须有处理方式。要么捕获,要么声明。
        read("b.txt");
        } catch (FileNotFoundException e) {// 括号中需要定义什么呢?
        //try中抛出的是什么异常,在括号中就定义什么异常类型
        System.out.println(e);
        }
        System.out.println("over");
        }
        /*
        *
        * 我们 当前的这个方法中 有异常 有编译期异常
        */
        public static void read(String path) throws FileNotFoundException {
        if (!path.equals("a.txt")) {//如果不是 a.txt这个文件
        // 我假设 如果不是 a.txt 认为 该文件不存在 是一个错误 也就是异常 throw
        throw new FileNotFoundException("文件不存在");
        }
        }
        }

        finally 代码块

      • 概述 :有一些特定的代码无论异常是否发生,都需要执行。另外,因为异常会引发程序跳转,导致有些语句执行 不到。而finally就是解决这个问题的,在finally代码块中存放的代码都是一定会被执行的。

      • 注意:如果try或者catch中有return返回值,则先执行完finally中的代码,再返回数据。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值