为什么catch参数隐式最终?

Rek*_*kha 5 java java-7

catch (IOException|SQLException ex) {
    logger.log(ex);
    throw ex;
}
Run Code Online (Sandbox Code Playgroud)

这里为什么ex隐含最终?使用ex隐式最终有什么用?

Rom*_*ain 7

它是隐式最终的,因为改变指向的对象是没有意义的ex,特别是在这种情况下,它可能是一个IOException或一个SQLException,因此(静态)赋值类型很难被编译器弄清楚.

  • @Rekha如果你不使用Java7风格的多捕获语法,你将被允许.在这种情况下,您无法分配,因为它不能是类型安全的. (2认同)