java - 我可以在类里面有两个以上的 finally block 吗

标签 java exception try-catch try-catch-finally

我正在做一个项目,我需要执行两个不同的操作。 我的主 Controller 方法中有一个 finally block 。

我的问题是,最后我能不能有两个以上,例如:

class test
{
    X()
    {
        try
        {
            //some operations
        }
        finally
        {
            // some essential operation
        }

    }

    //another method
    Y()
    {
        try
        {
            //some operations
        }
        finally
        {
            // some another essential operation
        }
    }
}

那么,这可能吗?

最佳答案

您只能有一个 finally 子句每个 try/catch/finally 语句,但是您可以有多个这样的语句,可以在同一个方法中,也可以在多个方法中。

基本上,try/catch/finally 语句是:

  • 尝试
  • catch(0 个或更多)
  • 最后(0 或 1)

...但是必须至少catch/finally之一(你不能只有一个“裸”try语句)

此外,您还可以嵌套它们;

// Acquire resource 1
try {
  // Stuff using resource 1
  // Acquire resource 2
  try {
    // Stuff using resources 1 and 2
  } finally {
    // Release resource 2
  }
} finally {
  // Release resource 1
}

关于java - 我可以在类里面有两个以上的 finally block 吗,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13306922/

相关文章:

c# - 从 Internet Explorer 8 中的 ActiveX 控件提取数据

java - 如何制作 Eclipse 插件

java - 递归方法要求从 1 到 10 的整数

java - 如何在 Sonarqube 中导入新的 java 插件规则

.net - 我可以避免在调试器附带调试器的情况下避免缓慢的.net异常吗?

java - 空检查链与捕获 NullPointerException

c++ - 我的代码在达到 eof 时会引发 basic_ios::clear ,但在 catch block 中处理正确的 eof 之后?

R避免 "restarting interrupted promise evaluation"警告

c# - 创建我自己的异常 c#

node.js - 如何在返回 Promise 的同时添加 catch