大数据基础之java异常处理

异常

  • 1. 概述
  • 2. JVM的默认处理异常的方式
  • 3. 自己处理异常
    • 3.1 抛出异常:throws
    • 3.2 捕获异常:try...catch...finally
  • 4. 思考题


1. 概述

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

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

运行结果:
大数据基础之java异常处理_第1张图片

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

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

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

3. 自己处理异常

3.1 抛出异常:throws

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

写一段代码演示异常
大数据基础之java异常处理_第2张图片
parse有一道红线,且鼠标放上去有提示说你要添加异常在你的方法上。
此刻我们点击后面的more actions
大数据基础之java异常处理_第3张图片
选择第一个,代码变为

@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
大数据基础之java异常处理_第4张图片
这样出来的效果是只有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

大数据基础之java异常处理_第5张图片

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

4. 思考题

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

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

你可能感兴趣的:(Java,大数据技术,java,大数据,jvm)