编译器的优化确实有可能移除掉 catch 块,但在实际操作中很难发生。如果你非常担心 catch 块被移除,可以在 catch 块中添加一些无用的代码,比如在 catch 块中添加一个空的方法,可以让编译器无法识别这个 catch 块是无用的,从而不会将其移除。
代码示例:
try {
// some code that may throw exception
} catch (Exception e) {
doNothing(); // 添加一个无用的方法
}
private void doNothing() {
// do nothing here
}