Java/Ignite - Try 块的功能 [重复]

Posted

技术标签:

【中文标题】Java/Ignite - Try 块的功能 [重复]【英文标题】:Java/Ignite - Function of Try Block [duplicate] 【发布时间】:2018-02-08 16:50:30 【问题描述】:

我是 Java 新手,所以这可能很明显,但请考虑以下两个代码块。版本 A 使服务器永远旋转,但版本 B 旋转然后终止服务器。这里的try块的作用是什么?

版本 A:

import org.apache.ignite.Ignition;
import org.apache.ignite.Ignite;
public class Test 
    public static void main(String[] args)
    
        Ignite ignite = Ignition.start();
        return;
    

B 版:

import org.apache.ignite.Ignition;
import org.apache.ignite.Ignite;
public class Test 
    public static void main(String[] args)
    
        try(Ignite ignite = Ignition.start())
        
            return;
        
    

【问题讨论】:

为什么这不等同于 Ignite ignite = Ignition.start(); ,因为在离开作用域时会调用资源析构函数? GOOGLE 说没有破坏者的想法 【参考方案1】:

Ignite 实例在 try-with-resource 语句中声明,无论 try 语句是否正常完成,它都会被关闭。 更多详情请访问https://docs.oracle.com/javase/tutorial/essential/exceptions/tryResourceClose.html

【讨论】:

以上是关于Java/Ignite - Try 块的功能 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

使用没有“catch”块的“try-finally”块

在 foreach 循环中使用 try-catch 块的最佳做法是啥? [关闭]

为啥 try..catch..finally 块的 finally 节在 catch 之前运行?

使用带有try-except块的python“with”语句

避免嵌套try catch块的模式?

idea 自动生成try/catch代码块的快捷键