专栏名称: /^落荒而逃不及迎刃而解^/
目录
相关文章推荐
建E室内设计网  ·  私宅设计:210㎡法式浪漫,装饰艺术与实用功 ... ·  3 天前  
archrace  ·  结果 | ... ·  2 天前  
gooood谷德设计网  ·  厦门招聘 | 退化建筑devolution ... ·  3 天前  
有方空间  ·  陶磊建筑新作:TAOA 798工作室 ·  5 天前  
蒋昊商业观  ·  楼市明牌了!这2座城市房价,2025年会大涨! ·  4 天前  
蒋昊商业观  ·  楼市明牌了!这2座城市房价,2025年会大涨! ·  4 天前  
51好读  ›  专栏  ›  /^落荒而逃不及迎刃而解^/

初学者对finally的认知

/^落荒而逃不及迎刃而解^/  · CSDN  ·  · 2021-01-25 10:15

正文

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。这也就是引用类型和非应用类型的关系。