static void test() {
try {
System.out.print(x.toString() + " ");
}
finally { System.out.print("finally "); }
}
public static void main(String args[])
{
try
{
test();
}
catch (Exception ex) { System.out.print("exception ");
}
Run Code Online (Sandbox Code Playgroud)
输出是finally exception.
为什么会出现在编译时被抛出任何错误,虽然try后面没有catch的test()?
Java 7添加ARM(自动资源管理)意味着您可以try单独使用.
try (PrintWriter pw = new PrintWriter("out.txt")) {
pw.println("Hello World!");
}
Run Code Online (Sandbox Code Playgroud)
pw当此范围退出时,这将关闭.
版本7之前的Java版本允许try-catch-finally的这三种组合:
try - catch
try - catch - finally
try - finally
Run Code Online (Sandbox Code Playgroud)
异常可能是NullPointerException因为没有x声明为静态字段并在内联或main方法中初始化.finally无论在try/和catch块中发生了什么,都将始终执行块.
| 归档时间: |
|
| 查看次数: |
8828 次 |
| 最近记录: |