try/catch/finally

本文深入探讨Java中的try/catch/finally语句,解释其在不同情况下的行为表现,特别是return语句与finally块之间的交互作用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

try/catch/finally知识点

    trycatch是java中处理异常很常用的语句,在不知道程序什么情况下会出现违例(Exception)的情况下,使用trycatch机制大大增加的程序的安全性,程序执行顺畅出现异常及时处理保证程序继续执行的机制,这也是Java语言健壮性,安全性的体现之一。

   对于try/catch/finally中try中有return的情况下,finally是否会执行?答案是会执行,这就好比当调用一个方法时必须要先执行完方法里面的程序一样(单线程情况下程序自下行而下执行)那么finaly意思是不管你是否执行了try中的语句finally(最终都要执行)举个例子你要用我的杯子里面放酒但我的杯子里面还有水我是不是要先把水喝完?我不喝完水你不能倒酒.不过执行的结果要也分两种情况,try中纯在return的情况下要分两种情况返回值类型,和返回引用类型

1,finally语句一定会执行除非程序退出,或者出现Errors;
2,当try中有return那么,返回值类型数据与返回引用类型数据有区别
3,try中return代码返回时,会先停顿一下,等待finally中代码执行完成后返回值

package Try_catch_finally;

public class TryCatchTest {

public static void main(String[] args) {
      int num=100;
      test(num);
      System.out.println(num);
      
      String str2="zhaoqi0";
      test3(str2);
      System.out.println(str2);
      
      
      String str="lisi";
      str=test1(str);
      System.out.println(str);

      Person person = new Person("lisi",5);
      person=test2(person);
      System.out.println(person.getName());
      
      
}
//值类型你是是我是我,数据存于方发栈中,且没有对象概念,找的是字面值
public static void test(int num){
try{
num=200;
}catch(Exception e){
e.printStackTrace();
}
finally{
num=300;
}
}
//String是特殊的引用类型(final修饰的,中存储char[]value值)数据存于常量池,在传址时和基本类型无区别可以怎么理解所以上面输出zhaoqio;
public static String test3(String str){
try{
str="zhangsan";
return str;
}catch(Exception e){
e.printStackTrace();
}
finally{
str="wangwu";
}
return str;
}
//返回String类型引用(所谓的引用就是地址和句柄相当于c中的指针)上面输出wangwu
zhangsan,可以看出finally的输出先与main方法中的输出
public static String test1(String str){
try{
str="zhangsan";
return str;
}catch(Exception e){
e.printStackTrace();
}
finally{
str="wangwu";
System.out.println(str);
}
return str;
}
//输出wangwu
public static Person test2(Person per){
try{
per.setName("zhangsan");
return per;
}catch(Exception e){
e.printStackTrace();
}
finally{
per.setName("wangwu");

}
return per;
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值