初学者对finally的认知

举报
王小贰 发表于 2021/01/26 10:49:46 2021/01/26
【摘要】 finally的用法及注意事项必然执行的异常统一的处理出口通俗点来讲:无论是否发生异常,finally必然执行:Finally:1.finally作为异常处理的一部分,它一般用在try/catch语句中。2.网络编程,I/o处理,数据库操作等 在执行这些操作时,都会发生异常。无论是网络编程还是客户端连接服务器以及连数据库占用数据库时,都需要释放,释放在finally里。Finally在什么情...

finally的用法及注意事项

必然执行的异常统一的处理出口通俗点来讲:无论是否发生异常,finally必然执行

Finally:

1.finally作为异常处理的一部分,它一般用在try/catch语句中。
2.网络编程,I/o处理,数据库操作等 在执行这些操作时,都会发生异常。无论是网络编程还是客户端连接服务器以及连数据库占用数据库时,都需要释放,释放在finally里。

Finally在什么情况下执行,什么情况下不会执行?(注意事项)

软件在内存里没了,电脑停电关机这些因素的情况下才会不执行
否则一定会执行

两个对比案例

package com.java.demo1;

public class Demo6 {
public static void main(String[] args) {
Person p = haha();
System.out.println(p.age);
}
public static Person haha(){
Person p = new Person();
try{
p.age = 18;
return p;
}catch(Exception e){
return null;
}finally {
p.age = 28;
}
}
static class Person{
int age;
}
}
在这里插入图片描述
这个代码是备份的内存地址,内存地址没变,年龄换成28,所以结果为28

package com.java.demo1;

public class Demo7 {
public static void main(String[] args) {
int a = haha();
System.out.println(a);
}
public static int haha(){
int a = 10;
try{
return a;
}catch(Exception e){
}finally {
a = 20;
}
return 0;
}
static class Person{
int age;
}
}
在这里插入图片描述
这个代码是备份的返回值,返回的还是原来的a。这也就是引用类型和非应用类型的关系。


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

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

全部回复

上滑加载中

设置昵称

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

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

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