javac是否有可能为以下过程生成无法访问的字节码?
public void ex06(String name) throws Exception {
File config = new File(name);
try (FileOutputStream fos = new FileOutputStream(config);
PrintWriter writer = new PrintWriter(new OutputStreamWriter(
fos , "rw"))) {
bar();
}
}
Run Code Online (Sandbox Code Playgroud)
当我查看字节码的异常表(javap -v)时,有以下条目看起来很奇怪:
43 48 86 Class java/lang/Throwable
43 48 95 any
Run Code Online (Sandbox Code Playgroud)
和
21 135 170 Class java/lang/Throwable
21 135 179 any
Run Code Online (Sandbox Code Playgroud)
现在的问题是,如果捕获了类型为"any"而不是Throwable的异常,则只能访问某些代码.有没有可能发生这种情况的情况?
======编辑======感谢目前为止的答案.让我给出另一个证据来表明我真的不理解异常处理:考虑以下过程
Object constraintsLock;
private String[] constraints;
private String constraint;
public void fp01() {
// Add this constraint to the set for our web application
synchronized (constraintsLock) …Run Code Online (Sandbox Code Playgroud) 我正在努力 My application's under maintanace module
try {
if (isUndermaintanace) {
System.exit(1);
} else {
prepareResources();
}
} catch (Exception e) {
printStack(e);
} finally {
cleanResources();
}
Run Code Online (Sandbox Code Playgroud)
当我通过 isundermaintanace true 最后没有执行.
我错过了什么?还有其他办法吗?