try或catch代码块中return后会不会执行finally

try、catch、finally 和 return 的执行关系 finally 块的代码总是会执行,无论 try 块是否有异常,是否有 return,还是程序中抛出了异常。即使 try 或 catch 块中有 return,finally 块也会在 return 之前执行。如果 finally 块中包含 return,它会覆盖 try 或 catch 中的 return 结果,直接返回 finally 的返回值。这些规则保证了 finally 块的执行一致性,但也可能引发一些难以察觉的问题,所以在编写代码时需要特别小心 finally 中的逻辑。 阅读详情

定义和用法

try/catch/finally 语句用于处理代码中可能出现的错误信息。

错误可能是语法错误,通常是程序员造成的编码错误或错别字。也 可能是拼写错误或语言中缺少的功能。

try语句允许我们定义在执行时进行错误测试的代码块。

catch 语句允许我们定义当 try 代码块发生错误时,所执行的代码块。

finally 语句在 try 和 catch 之后无论有无异常都会执行。

注意: catch 和 finally 语句都是可选的,但你在使用 try 语句时必须至少使用一个。

提示: 当错误发生时, Java会停止执行,并生成一个错误信息。使用 throw 语句 来创建自定义消息(抛出异常)。如果你将 throw 和 try 、 catch一起使用,就可以控制程序输出的错误信息。

public class Test {
	
	public static void main(String[] args)  {
		try {
			System.out.println("try...");
			int num = 1/0;
		} catch (Exception e) {
			System.out.println("catch...");
			System.out.println(e.getMessage());
			return;
		}finally {
			System.out.println("finally...");
		}
	}

}

在这里插入图片描述

结果验证

从打印结果来看,即使发生异常后finally依然会执行,finally在return之前执行

医药领域知识图谱快速及医药问答项目(项目全过程) 该项目是中科院软件所刘焕勇老师在github上的开源项目,基于知识图谱的医药领域问答项目 Github项目地址:mirrors / liuhuanyong / qasystemonmedicalkg · GitCode 一、项目环境搭建 该部分要十分注意,由于版本升级的问题,一些用法及格式已经不兼容了。 python3.8 下载地址:Python Release Python 3.8.10 | Python.orght... 阅读详情

相关推荐

RandLA-Net复现SemanticKITTI和S3DIS数据集

RandLA-Net复现KITTI和室内数据集

weixin_48845174的博客 4106

try catch 语句中有return 的各类情况

在牛客上做java题时遇到过多到关于try catch语句的问题,看了很多答案解析,在这里记录一下。首先给出一道题目:下面代码的运行结果为?public class test { public int add(int a,int b) { try { return a+b; }catch(Exception e){ System.out.println("catch语句块")...

Dxy的博客 6万+

Sylvester结式法求解多项式方程

Sylvester结式法,结式,消元法,ctfshow 七夕杯 LUCK7,crypto,WriteUp

u010883831的博客 4528

关于try/catch块中return的使用

当在try块中使用return语句时,它会立即终止当前函数的执行并返回一个值。这意味着try块中后续的代码将不会被执行。如果在try块中使用return语句并指定了一个返回值,该返回值将成为整个函数的返回值。在使用块时,catch块用于捕获try块中的异常。如果在catch块中使用return语句并指定一个返回值,该返回值将成为整个函数的返回值。这可以用于处理异常情况并返回一个特定的值或执行特定的逻辑。在这个示例中,divide函数用于计算两个数的商。如果除数b为零,会抛出一个异常,并在catch。

weixin_55020138的博客 5054

【图文步骤】EC-Engineer部分操作详细步骤

EC-Engineer部分功能详细使用手册

weixin_42212468的博客 6164

Xshell 连接 VMware虚拟机操作 截图和使用

vmwareVMware总部位于美国加州帕洛阿尔托(Palo Alto),是全球云基础架构和移动商务解决方案厂商,提供基于VMware的解决方案,企业通过数据中心改造和公有云整合业务,借助企业安全转型维系客户信任,实现任意云端和设备上运行、管理、连接及保护任意应用Xshell(安全终端模拟软件)Xshell [1]是一个强大的安全终端模拟软件,它支持SSH1, SSH2, 以及Microsoft Windows 平台的TELNET 协议。

小 tom的博客 800

try catch 中 return 详解

只代表个的一些看法,如有不对请多多指教!         by    xue.kevin        看了好多人的解释,觉得都不太准确,其实大家都陷入了一个误区,return XXX;这句代码的意思不是说返回 XXX这个对象,而是返回 当前 XXX所指向的物理地址,如果return没有立即执行,那么无论什么时候,这个return记录的返回值是不会变的(因为java不支持对内存的操作,所以我也无

xuedengyong的博客 7462

【A2DP】规范精讲[1]: 深入解析A2DP协议的核心架构

在蓝牙技术发展的早期阶段,音频传输主要通过SCO(同步面向连接)链路实现,这种设计主要针对语音通信,音质有限且功能单一。随着人们对无线高质量音频需求的增长,​​Advanced Audio Distribution Profile (A2DP)​​ 应运而生,成为蓝牙音频传输的技术基石。

byte轻骑兵的技术小窝 1万+

有return的情况下try catch finally的执行顺序(最有说服力的总结)

结论: 1、不管有木有出现异常,finally块中代码都会执行; 2、当try和catch中有return时,finally仍然会执行; 3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的; 4、finally

我只是坚持我的兴趣。 23万+

IEC 60747-8 是由国际电工委员会(IEC)制定的标准,标题为《半导体器件 - 分立器件 - 第8部分:场效应晶体管》

IEC 60747-8 是由国际电工委员会(IEC)制定的标准,标题为《半导体器件 - 分立器件 - 第8部分:场效应晶体管》(Semiconductor devices - Discrete devices - Part 8: Field-effect transistors)。该标准详细规定了场效应晶体管(FETs)的测试方法,涵盖静态和动态特性测试,适用于多种类型的FET,包括结型场效应晶体管(JFETs)、绝缘栅场效应晶体管(MOSFETs,增强型和耗尽型)等。3. 标准其他部分(简要概述)

专注于前沿技术的探索与实践,热衷于从代码逻辑、架构设计到行业应用等多维度深挖技术本质。期待在技术之路上与你共同成长~ 571

借助Gemini 3 Pro高效解决课题申报中的五大核心痛点,亲测有效经验分享

之前给大家分享过关于AI辅助课题申报的相关的内容,涵盖了申报书部分撰写技巧,但没针对性拆解各位同仁在实际申报时遇到的卡壳的地方。比如选题范围拿捏不准,定的太大,根本没法落地完成;定的太小,研究价值则体现不了;写综述时,容易单纯罗列文献,缺乏批判性视角,没办法自然融入自己的判断,找不到研究缺口;研究方法部分,可能担心方法设计不够严谨,别人难以复现.....针对这些申报中的高频痛点,接下来七哥会从五个核心要点出发,借助Gemini 3 Pro高效解决这些痛点。

智能AI让学术科研更容易 700

try-catch-finally return 的执行顺序

异常处理中,try、catch、finally是按顺序执行的。 即,如果try中没有异常,则顺序为try→finally, 如果try中有异常,则顺序为try→catch→finally。 但是当try、catch、finally中加入return之后,就会有几种不同的情况出现,下面分别来说明一下。也可以跳到最后直接看总结。 一、try中带有return private int testReturn1() { int i = 1; try { i++;

weixin_45122172的博客 1万+

51单片机8×8LED点阵屏动态显示取模汉字+ Proteus仿真

51单片机8×8LED点阵屏动态显示取模汉字+ Proteus仿真 Proteus仿真 取模软件:pctolcd2002 程序代码 #include<reg52.h> unsigned char code taba[]={0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f};//行选 unsigned char code tabb[]={0x08,0x49,0x49,0x7F,0x08,0x49,0x49,0x7F};//选列"出" unsigned cha

perseverance51博客 8054

try{}、catch{}、finally{} 中 return 的执行顺序

try、catch、finally中的return 今天在做一个多线程加读写锁的测试时,考虑效率问题,想及时return结果,但存在一个严肃的问题,那就是锁的开启和关闭问题。因为锁开启后,用完不及时关闭,会因堵塞而造成资源无法请求。因此,做了一个测试,尽量做到全面,哪怕有些显得有些脑残,测试嘛。 /** * @author qing * * Try……catch……fin

脚步不停,信念不息! 2万+

RU DOS版、EFI版32bit/64bit BIOS常用工具

DOS版、EFI版的RU工具,可用来查看IO、MEM、PCI、SMBIOS等资源。亲测在EFI SHELL下可用。

NTscan扫描工具

ntscan是一个扫描器,可以扫描没有密码和弱密码的共享,先到配置文件中填写猜测的用户名和密码,扫描过程中右侧出现的是扫描日志。

当return遇到try、catch、finally时会发生什么?

1.return的作用 在Java中的return语句和方法有密切的关系,return语句用在方法中,有两个作用,一个是返回方法指定类型的值(这个值总是确定的),一个是结束方法的执行(仅仅一个return语句)。就像下边这样: package com.albertyy.other; /* * 公众号:AlbertYang */ public class Return ...

AlbertYang的博客 3945

Statistics and Machine Learning Toolbox

Statistics and Machine Learning Toolbox(带书签),MATLAB统计学习工具

Java如果在try,catch里面执行return,那么还会不会执行finally?

点赞关注,不会迷路! 总结: 1、不管有没有异常,finally中的代码都会执行 2、当try、catch中有return时,finally中的代码依然会继续执行 3、finally是在return后面的表达式运算之后执行的,此时并没有返回运算之后的值,而是把值保存起来,不管finally对该值做任何的改变,返回的值都不会改变,依然返回保存起来的值。也就是说方法的返回值是在finally运算之前就确定了的。 4、如果return的数据是引用数据类型,而在finally中对该引用数据类型的属性值的改...

weixin_50333534的博客 5578

try catch finally 里面有return的执行顺序详细讲解

try catch finally 里面有return的执行顺序 实例测试 第一种情况 try里面有return,catch和finally里面吗没有return public static int tryTest(int i){ try { System.out.println("try里面的语句执行了!"); return i; }catch (Exception e){ e.printStack

qq_46589658的博客 5400

try-catch里面加了return后,finally还会执行吗?

try-catch里面加了return后,finally还会执行吗?1.try中添加return,其他地方不添加2.try和finally中添加return,其他地方不添加3.try,catch和finally中都添加return4.当return在try外面时,在catch中添加return结论: 1.try中添加return,其他地方不添加 public class Mydemo { pu...

qq_36484670的博客 3210

try、catch、finally语句中有return 的各类情况

try、catch、finally语句中有return 的各类情况1、 try-catch-finally中均无return,仅4中有return注意2、try 和 catch 中都带有 return ,finally无return总结 在 Java 的异常处理中,try、catch 和 finally 是按顺序执行的。如果 try 中没有异常,则顺序为 try→finally,如果 try 中有异常,则顺序为 try→catch→finally。但是当 try、catch、finally 中加入 retu

code_java_zqy 2859

try {}里有一个 return 语句,那么紧跟在这个 try 后的 finally {}里的 code 会不会被执行,什么时候被执行,在 return 前还是后?

会在return中间执行! try 中的 return 语句调用的函数先于 finally 中调用的函数执行,也就是说 return 语句先执行,finally 语句后执行,但 return 并不是让函数马上返回,而是 return 语句执行后,将把返回结果放置进函数栈中,此时函数并不是马上返回,它要执行 finally 语句后才真正开始返回!但此时会出现两种情况: ①、如果finally中也...

qq_41494853的博客 3845

try-catch-finally 中,如果 catch 中 return 了,finally 还会执行吗

try{ }catch{ }finally{ }

ananyatouanan的博客 7995

try-catch-finally的执行顺序

无return,无异常无return,有异常try(未出现异常的前半段) -> catch ->finallytry或catch中有return,无异常try或catch中有return,有异常try(未出现异常的前半段) -> catch ->finally->return(catch)只要是finally中有return的情况不论有没有异常,try或catch中有没有return我们可以看出当finally中有return的时候,相当于此代码肯定会返回该值。

Hi,印象钟情 1200

try、catch、finally、return执行过程

本文提到的点均经测试,本文最后贴一下测试代码,如需再次验证,自行注释个别行即可。

qq_41623592的博客 1008

try catch finally,try里有return,finally还执行么?

答案:执行,并且finally的执行早于try里面的return结论:1、不管有木有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是...

change的博客 1657

try...catch...finally代码块与return

try发生除0异常,被catch捕获,输出Exception,result被赋值为-1执行return语句,但是此时并没有返回,而是先把要返回的值放在临时栈中保存起来,去执行finally中的代码,此时虽然对result进行更改,但是返回的值不会改变,仍然是之前保存的值,但如果是引用类型时会影响返回结果。时,所有的static代码块都会被执行。:当一个类被加载到JVM时,JVM会先执行该类中的static代码块。(1)static代码块是一个用static修饰的代码块,它属于类,而不是类的实例。

m0_74235082的博客 677

c++ try catch语句_try{}catch{}finally{},和return的执行顺序

1、不管有没有出现异常,finally块中代码都会执行;2、当try和catch中有return时,finally仍然会执行;3、finally是在return后面的表达式运算后执行的(此时并没有返回运算后的值,而是先把要返回的值保存起来,不管finally中的代码怎么样,返回的值都不会改变,任然是之前保存的值),所以函数返回值是在finally执行前确定的;4、finally中最好不要...

weixin_39835991的博客 1469
上一篇: Thread和Runnable的关系
下一篇: 多线程按顺序打印1 ~ 25,A ~ Z
l_learning
博客等级 码龄8年 15粉丝 82原创
评论 1
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值