大数据基础之java异常处理

本文围绕Java异常处理展开。首先指出Java中异常指程序出现不正常情况,介绍了JVM默认处理异常的方式,即打印异常信息且后续代码不执行。还阐述了两种自己处理异常的方法,抛出异常(throws)由更高级调用者处理,捕获异常(try…catch…finally)可处理异常,最后探讨了finally代码块执行情况。


1. 概述

观察如下的代码, 看有无问题:

@Test
public void exception_demo(){
    int a = 10;
    int b = 0;
    System.out.println(a/b);
}

运行结果:
在这里插入图片描述

我们发现, 上述代码的第3行会报错, 即: 算术运算异常, 因为除数是不能为零的. 而在我们编写程序的时候, 可能会有很多的问题存在, 为了将来方便的表示这些问题的原因, 类型, 位置, Java就提供了异常对象供我们使用. 即: Java中的异常指的是程序出现不正常的情况.

2. JVM的默认处理异常的方式

如果出现了问题, 我们自己没有处理, JVM会采用自动的处理方法, 它会把异常的类型, 原因, 位置直接打印到控制台上, 后边的代码是不能执行的.

3. 自己处理异常

3.1 抛出异常:throws

抛出 由更高级的调用者完成异常处理

写一段代码演示异常
在这里插入图片描述
parse有一道红线,且鼠标放上去有提示说你要添加异常在你的方法上。
此刻我们点击后面的more actions
在这里插入图片描述
选择第一个,代码变为

@Test
public void doThrowException() throws ParseException {
   SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
   Date d1 = sdf.parse("2022-12-1");
}

在方法后面加上了 throws ParseException
这就是抛出了异常,由方法调用者再去处理这个异常。

3.2 捕获异常:try…catch…finally

try{
尝试执行的代码
}catch{
出现异常后处理异常的代码
}finally{
处理完成后,无论是否有异常都要执行的代码
}

同一段代码,还是鼠标放在红线单词上方,点击more actions,选择第三项,Surround with try/catch
在这里插入图片描述
这样出来的效果是只有try…catch…

    @Test
    public void doThrowException() {
        SimpleDateFormat sdf = new SimpleDateFormat("YYYY-MM-dd");
        try {
            Date d1 = sdf.parse("2022-12-1");
        } catch (ParseException e) {
            e.printStackTrace();
        }
    }

代码不会报错

try…catch…finally的快捷键

Ctrl+Alt+t

在这里插入图片描述

这个界面我们可以清楚的看到有 6.try catch 8.就是try catch finally

4. 思考题

finally里边的代码真的永远会执行吗?

出现非运行时异常时不可能执行finally
如果手动结束,也不会执行finally中的指令
运行时异常出现,或者不出现异常时,都会执行finally

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

chad__chang

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值