Rom*_*meo 7 java go try-catch-finally
这只是Go代码的一个简短示例:
package main
import "fmt"
func main() {
defer fmt.Println("world") //use of keyword 'defer'
fmt.Println("hello")
}
Run Code Online (Sandbox Code Playgroud)
我在Java中找到了相当于'defer'的东西.
我可以使用而不是'推迟'
try {
//do something
} finally {
//code using defer
}
Run Code Online (Sandbox Code Playgroud)
没有使用try/catch/finally有没有其他选择?
Java 7有一个try-with-resources语句.
try-with-resources语句是一个声明一个或多个资源的try语句.资源是在程序完成后必须关闭的对象.try-with-resources语句确保在语句结束时关闭每个资源.实现java.lang.AutoCloseable的任何对象(包括实现java.io.Closeable的所有对象)都可以用作资源.
以下示例从文件中读取第一行.它使用BufferedReader实例从文件中读取数据.BufferedReader是一个在程序完成后必须关闭的资源:
Run Code Online (Sandbox Code Playgroud)static String readFirstLineFromFile(String path) throws IOException { try (BufferedReader br = new BufferedReader(new FileReader(path))) { return br.readLine(); } }在此示例中,try-with-resources语句中声明的资源是BufferedReader.声明语句出现在try关键字后面的括号内.Java SE 7及更高版本中的BufferedReader类实现了java.lang.AutoCloseable接口.因为BufferedReader实例是在try-with-resource语句中声明的,所以无论try语句是正常完成还是突然完成(由于BufferedReader.readLine方法抛出IOException),它都将被关闭.