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代码进行不向上抛异常,所以才会继续跑下去
用来兜底的。保证一些十分重要的事情在代码执行完毕以后一定要做。例如关闭连接,输出报错日志等操作