在 C++ 中,我们在构造函数中获取资源并在析构函数中释放它。
因此,当异常在函数中间出现时,不会发生资源泄漏或互斥锁锁定等情况。
据我所知,Java 类没有析构函数。那么如何在 Java 中进行资源管理。
例如:
public int foo() {
Resource f = new Resource();
DoSomething(f);
f.Release();
}
如果 DoSomething 抛出异常,如何释放资源?我们不能在整个代码中放置 try\catch block ,对吗?
最佳答案
是的,您可以而且应该在您的代码周围放置 try/catch/finally block 。在 C# 中有一个简写的“using”语句,但在 Java 中你会被困在:
public int foo() {
Resource f = new Resource();
try {
DoSomething(f);
}
finally {
f.Release();
}
}
关于java - java中的无痛资源管理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58547/