大数据基础之java异常处理

举报
chad_chang 发表于 2022/10/27 10:45:18 2022/10/27
【摘要】 大数据基础之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

【版权声明】本文为华为云社区用户原创内容,转载时必须标注文章的来源(华为云社区)、文章链接、文章作者等基本信息, 否则作者和本社区有权追究责任。如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。