处理异常finally有什么 用啊


public class Demo1 {
    public static void main(String[] args) {
        Scanner scanner=null;
        try {
            scanner=new Scanner(System.in);
            int a=scanner.nextInt();
            int i=1/0;
        }catch (Exception e){
            e.printStackTrace();
        }
        finally {
            scanner.close();
        }
//scanner.close();
        System.out.println("完成");
    }
}
网上说最主要作用是关闭资源,可是不管有没有出现异常放在外面执行不就得了,为什么还要finally,

finally 是一定会执行的部分, 多用来关闭资源。
finally{ 无论try代码是否正常走完,里面的代码都会执行 }

处理异常finally 一定会执行的,你的代码中,用来确保一定能关闭输入流。
麻烦采纳一下,你的采纳,是对我最好的鼓励,谢谢!

finally如果也抛异常呢?后面的代码不保证执行

是因为你对catch代码进行不向上抛异常,所以才会继续跑下去

用来兜底的。保证一些十分重要的事情在代码执行完毕以后一定要做。例如关闭连接,输出报错日志等操作