Ana*_*tel 4 c# java java-7 try-with-resources
我是.net开发人员.最近,我对比较java和c#感兴趣.我发现Java的try-with-resources相当于C#的使用块.但是,我无法完全理解它.我知道C#的using块是一种语言特性,编译器为它生成代码.我希望对资源尝试有更多的了解,并且几乎没有问题:
它是一个类似于C#使用块的语言功能吗?
以下内容的等效JDK 6代码是什么:
try(SomeResource resource = new SomeResource())
{
//Some logic
}
Run Code Online (Sandbox Code Playgroud)以下内容的等效JDK 6代码是什么:
try(SomeResource resource = new SomeResource())
{
//Some logic
}
catch(SomeException ex)
{
}
Run Code Online (Sandbox Code Playgroud)什么是Java相当于C#的Reflector或ILSpy工具?即工具来反汇编Java字节码类文件并查看它的Java代码.
更新:我误解了你的问题.JDK6代码看起来像
try {
final SomeResource resource = new SomeResource();
Throwable resourceEx = null;
try {
//... use resource
} catch (Throwable t) {
resourceEx = t;
throw t;
} finally {
if(resource != null) {
if(resourceEx != null) {
try {
resource.close();
} catch (Throwable t) {
resourceEx.addSuppressed(t);
}
} else {
resource.close();
}
}
}
} catch (SomeException ex) {
//...standard error handling
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1836 次 |
| 最近记录: |