当前位置: 首页 > 面试题库 >

最终如何使用

糜宜民
2023-03-14
问题内容

我从来没有适当地理解finally语句的用法。谁能告诉我有什么区别:

try {
    a;
    block;
    off;
    statements;
} catch (Exception e) {
    handle;
    exception;
    e;
} finally {
    do;
    some;
    cleanup;
}

一方面并:

try {
    a;
    block;
    off;
    statements;
} catch (Exception e) {
    handle;
    exception;
    e;
}
do;
some;
cleanup;

在另一


问题答案:

他们不同,如​​果

  • try-块完成了由投掷java.lang.Throwable不是一个java.lang.Exception,例如,因为它是一个java.lang.ErrorAssertionErrorOutOfMemoryError
  • 在try块突然结束使用流程控制语句这样的continuebreakreturn
  • catch块突然完成(通过抛出任何throwable或使用控制流语句)

更一般而言,Java语言保证在try语句完成之前执行finally块。(请注意,如果try语句未完成,则无法保证finally。语句可能由于各种原因而未完成,包括硬件关闭,操作系统关闭,VM关闭(例如由于导致System.exit),线程等待(Thread.suspend()synchronizedObject.wait()Thread.sleep())或以其他方式被忙碌(无端环,,,,)。

因此,finally与方法主体的末尾相比,块是执行清除操作的更好的位置,但其本身仍不能保证清除执行。



 类似资料:
  • 问题内容: 我上了最后一堂课,像这样: 我在其他这样的班级中使用这个班级: 在我的JUnit测试类中,Seasons.java我想模拟RainOnTrees该类。我该如何使用Mockito做到这一点? 问题答案: 仅在Mockito v2中可以模拟最终/静态类/方法。 将此添加到你的gradle文件中: 使用Mockito常见问题解答中的 Mockito v1,这是不可能的: `What are

  • 如何在Java 8 lambda中使用非final变量。它抛出编译错误,称“封闭范围中定义的局部变量日期必须是final或实际上是final” 我实际上想实现以下目标: 如何实现此目的?它会为 date2 引发 comilation 错误。谢谢

  • 库加载良好,但似乎找不到静态变量。为什么没有加载静态变量?

  • 我有最后一节课。 org.mockito.exceptions.base.MockitoExc0019:不能模拟/间谍类改造2.响应Mockito不能模拟/监视以下内容:-最终类-匿名类-原始类型 如何使用Powermockito模拟响应类?

  • 我需要访问十万个或更多的url,并检查它们是否重定向到不同的最终url。 我正在使用https://www.scrapeulous.com这样做。但我需要编写一个简单的自定义函数来实现它。他使用了got图书馆。其中的文档在以下重定向选项中指出: 跟随重定向 类型:布尔值默认值:true 定义重定向响应是否应自动执行。 注意,如果服务器响应任何请求类型(POST、DELETE等)发送303,则Got

  • 我为象棋游戏做了一个负极算法,我想知道如何使用最终的棋盘值结果。我知道负极算法的最终回报代表了玩家采取最佳策略后的棋盘值,但这并不完全是有用的信息。我需要知道那一步是什么,而不是它的价值。 代码如下: 在确定bestValue后,我考虑重新评估当前匹配状态的子项。然后我遍历它们,找出其中哪个孩子的statecore等于bestValue。但这是行不通的,因为不管怎样,他们中的很多人都会有相同的状态