C# Try Catch Finally 执行顺序是什么?有返回值呢?

news/2025/6/21 16:20:02/

Try Catch Finally 执行顺序是什么?有返回值呢?

大部分程序员都认为:C#异常处理执行顺序,很简单,没什么可说的。

  • 正常情况:执行顺序为 1、3(下图)
    在这里插入图片描述

  • 异常情况:执行顺序为1、2、3
    在这里插入图片描述


文章目录

  • Try Catch Finally 执行顺序是什么?有返回值呢?
    • 当有返回值时,执行顺序就没那么简了。不妨猜猜看下图的执行顺序?
    • 小结:


规则1:不管try中是否出现异常,finally块中的代码都会执行;

当有返回值时,执行顺序就没那么简了。不妨猜猜看下图的执行顺序?

在这里插入图片描述

  • return语句在后面
    在这里插入图片描述
    在这里插入图片描述
    正常顺序,不影响Try Catch Finally 执行顺序

  • return语句在Try语句块内
    在这里插入图片描述

规则2:无论有无异常,finally语句块都要执行

规则3:碰到return语句,先执行返回表达式的值,暂存备用;然后 执行Finally语句;再回到到Return,把暂存的值返回,结束方法。

规则4:Finally语句中,值类型的返回值不可更改;引用类型的值可以更改,返回的是更改后的返回值

  • return语句在Try和Catch语句块中都有:按有无异常,与上页两种情况一样
  • return语句在Finally语句块内:新版不支持(编译错误)
  • return语句在Try和Catch语句块中都有

在这里插入图片描述
在这里插入图片描述

小结:

  1. 无论有无异常、有无返回值,finally 语句块都会执行;
  2. 方法只会处理第一个 return语句, 后续会被忽略;(符合一般规则)
  3. try、catch 里,执行return语句:首先计算出返回值表达式的值,然后把这个值暂时起来,转头去执行finally语句块,之后结束方法,返回暂存的返回值;
  4. finally语句块:不能修改值类型的返回值;可以修改引用类型返回值内容,最终返回的是修改后的

http://www.ppmy.cn/news/1669790.html

相关文章

代码随想录算法训练营第60期第三十七天打卡

大家好,今天我们算法训练营的第37天,首先为自己感到骄傲,居然坚持下来了,本来觉得自己可能坚持不下来,但是我硬是坚持下来了,好样的,同时也感谢那些看我的题解给我点赞的朋友,我在这…

06Spring—AOP @Around环绕通知的进阶思考

目录 一、初步思考: 1. 前置逻辑:保姆巡视房间(方法调用前) 2. 执行目标方法:唤醒婴儿(调用核心逻辑) 3. 后置逻辑:婴儿醒来后换尿布(方法正常返回) 4. …

浏览器验证证书

在TCP握手成功后进行TSL握手,在服务器的Server Hello的过程中会返回给客户端数字证书。 浏览器验证证书的合法性是一个多步骤的过程,涉及 证书链验证、签名校验、有效期检查、域名匹配 等关键环节。以下是详细的验证流程: 1. 证书链验证&…

二、xlib事件

文章目录 1.事件处理2.Expose事件3.键盘事件4.鼠标按下事件5.鼠标进入离开窗口事件6.鼠标移动事件7.窗口改变事件8.焦点事件 在xlib的窗口系统中,当一个窗口创建后,可以对窗口进行鼠标点击,键盘输入,改变窗口位置,改变…

C# 活动窗体截图:基于 Win32 API 的实现

1. 核心功能与技术栈 该截图功能类 ScreenShotClass 基于 Win32 API 实现了两种截图方式: CopyFromScreen 方法:利用 Graphics.CopyFromScreen 直接截取屏幕区域。BitBlt 方法:通过 GDI 的位图块传输(BitBlt)实现窗口…

该如何了解联排半孔的使用规范?

联排半孔是在PCB板边缘以半镀孔的形式创建的压痕。这些联排半孔有助于在组装过程中将一块PCB板安装在另一块PCB板上。根据应用的不同,它们也可能看起来像一个破碎的圆的一小部分或较大的部分,而不是半孔。这种孔的设计是为了在焊接时提供适当的板之间的对…

基于WinCC flexible 2008、STEP_7和博途之间的项目移植

作者:鲁 晓 啼 一、将WinCC flexible项目移植至博途 1.1更改WinCC flexible项目版本 1.2移植过程 1.3移植过程可能出现的问题及解决方法 二、将STEP_7项目移植至博途 2.1创建STEP_7项目并保存 2.2更改HMI项目版本 2.3移植过程 关键词:博途、STEP_7、Wi…

软考软件评测师——计算机组成与体系结构

目录 计算机寻址方式详解与对比分析 一、立即寻址 二、直接寻址 三、间接寻址 四、寄存器寻址 五、寄存器间接寻址 六、变址寻址 七、基址寻址 八、相对寻址 九、综合对比分析 计算机寻址方式详解与对比分析 一、立即寻址 核心概念 指令操作码后直接携带操作数值&a…