在 while 循环内使用 try-finally 块[重复]

2024-04-25

当我在 while 循环中使用finally 时,我试图理解该机制。 在下面的代码中。终于在行打印并比 while 中断。我预计代码不会到达finally 块。或者如果它到达finally块,则有no break在那里,所以这段时间应该继续..任何人都可以解释这是如何工作的吗?

         while(true){
            System.out.println("in while");

            try{
                break;
            }finally{
                System.out.println("in finally");
            }

        }
        System.out.println("after while");

输出是

in while
in finally
after while

虽然你break保证try执行时finally总是被执行。你无法停止将控件输入到finally中。

https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html https://docs.oracle.com/javase/tutorial/essential/exceptions/finally.html

当 try 块退出时,finally 块总是执行。这确保即使发生意外异常,finally 块也会被执行。但finally 的用途不仅仅是异常处理——它允许程序员避免清理代码被返回、继续或中断意外绕过。

这种行为是有原因的。它对我们有帮助。

它允许程序员避免清理代码被返回、继续或中断意外绕过。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在 while 循环内使用 try-finally 块[重复] 的相关文章

随机推荐

  • 为什么我的 justify-content 属性不起作用?

    我试图通过将 justify content 属性应用到父 div 来在模板的侧边栏和内容区域之间添加一些空间 但它并没有在侧边栏和内容区域之间添加该空间 我不确定我做错了什么 wrapper display flex flex direc
  • 文件夹上的 C#(Outlook 加载项)上下文菜单

    在我的 VSTO Outlook 插件中 我试图放置一个按钮 当我右键单击文件夹时会显示该按钮 在我的启动功能中我有这个 Outlook Application myApp new Outlook ApplicationClass myAp
  • 角度项目的粒子 js 背景?

    谁能解释如何为 Angular 6 项目添加粒子 js 背景 我遵循了以下链接的一些教程 但它对我不起作用 https github com VincentGarreau articles js https github com Vince
  • Array.Sort 使用重要的比较函数

    考虑以下代码C 5 0 简而言之 p 289 int numbers 1 2 3 4 5 Array Sort numbers x y gt x 2 y 2 0 x 2 1 1 1 这给出了结果 3 5 1 2 4 我在纸上尝试了这个并得到
  • 将 R ggplot 中直方图中的 y 轴标准化为按组比例

    我的问题非常类似于将 R ggplot 中直方图中的 y 轴标准化为比例 https stackoverflow com questions 11766856 normalizing y axis in histograms in r gg
  • Dialogflow通过NodeJS传递参数

    如何通过 NodeJS 请求传递参数 例如 我想传递代码中的名称 对话流会自动回答包含我传递的参数的响应 如 Hi name 我的实际要求 const request session sessionPath queryInput text
  • Xamarin.UITest:如何检索列表中的所有元素

    我有一个包含 500 个元素的列表 当我使用app Query在页面上 Xamarin UITest 只给了我 6 个元素 因为 UI 中只有 6 个元素可见 如何从 UITest 内的列表中检索所有 500 个元素 如上所述 预期行为ap
  • CMake 错误“找不到要添加属性的目标”

    在我的 CMakeLIsts txt 文件中我这样写 set LIBHELLO SRC hello c set target properties hello static PROPERTIES OUTPUT NAME hello get
  • 在JTextArea中使用Timer实现打字机效果?

    我正在制作一款文本冒险游戏 但遇到了一个问题 我无法按照我想要的方式显示一些文本 当输入一些单词时 玩家可以开始引入一个新房间 我希望这个介绍具有 打字机 效果 该事件需要在我的程序 ActionPerformed 方法中发生 例如 当用户
  • 如何在 Tridion 中获取当前登录用户的 tcmid?

    private void Subscribe EventSystem Subscribe
  • 对象不支持属性或方法日期选择器

    我试图在我的页面中放置一个日期选择器并收到此错误 我已经搜索并寻找此错误的其他答案 但找不到任何答案 如果没有对于引导程序部分 它有效 但有了它 我收到了这个错误 这背后的原因是什么 我该如何解决这个问题 这是我的index cshtml
  • 如何用mock修补模块的内部函数?

    我所说的 内部函数 是指从定义它的同一模块内调用的函数 我正在使用mock http www voidspace org uk python mock 图书馆 特别是patch http www voidspace org uk pytho
  • Android中状态栏的高度[重复]

    这个问题在这里已经有答案了 Android状态栏的高度是多少 总是一样吗 从我的测量来看 它似乎是 25dp 但我不确定它在所有平台上是否具有相同的高度 我想知道这一点以正确实现从没有状态栏的活动到有状态栏的活动的淡入淡出过渡 这个问题之前
  • windows下如何获取线程的起始地址?

    I m working on a mini windows process explorer in C I have a handle to a thread How can I retrieve starting address of t
  • 如何使用自定义复选框按钮选择表视图行选择?

    如何使用自定义按钮选择表格视图行 我有另一个按钮 称为选择表视图外部的所有内容 我的问题是 在单击表视图按钮外部时 如何选择和取消选择表视图内部的行 同时我可以在表视图中选择单行吗 如何在 swift 3 中做到这一点 这是我在 cellf
  • Spring MVC 中 Bean 集合的自定义绑定错误消息

    我们使用的是 Spring MVC 3 0 6 但我们没有使用 JSR 303 验证 仅在处理模型表单 bean 的控制器方法中使用 BindingResult 进行绑定错误 我将尝试简化下面的示例 因为问题不在于如何构建事物 因为这些决定
  • git-svn rebase 出了严重错误

    有没有办法重做 git svn rebase 或重置任何效果 在我的 8000 提交 git svn 存储库中 合并分支后出现问题 我的本地 master 没有反映任何接近完整主干日志的内容 和跑步git svn rebase正确地获取新的
  • Material UI 嵌套主题提供程序打破了 withStyles HOC

    我有一个使用 Create React App 创建的 React 应用程序 并使用 material ui core npm 包进行主题化 为了自定义组件 我使用 MaterialUI 提供的 withStyles 高阶组件 根据文档它支
  • read_excel 读入消息 - 抑制?

    我喜欢使用readxl包裹 然而 我一直将它用作 RMarkdown 文档的一部分以及一些read excel 读取文件时的消息在进行分析时很有用 但在尝试呈现分析时则无用 所以问题是 在使用时是否有任何方法可以抑制收到的消息 或与此相关的
  • 在 while 循环内使用 try-finally 块[重复]

    这个问题在这里已经有答案了 当我在 while 循环中使用finally 时 我试图理解该机制 在下面的代码中 终于在行打印并比 while 中断 我预计代码不会到达finally 块 或者如果它到达finally块 则有no break在