0
点赞
收藏
分享

微信扫一扫

大数据基础之java异常处理

(异常)

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

举报

相关推荐

0 条评论