为什么参数在单个处理程序catch语句中是最终的

时间:2015-07-06 10:40:03

标签: java exception-handling

如果单个处理程序catch语句处理多个异常,为什么该参数是隐式的final

catch (IOException|SQLException ex) {
    logger.log(ex);
    throw ex;
}

在此代码中,ex是final。为什么会这样?

1 个答案:

答案 0 :(得分:3)

否则你可能会想写ex = new IOException();之类的东西,但由于该类型实际上不是IOExceptionSQLException,它会以奇怪的方式打破类型安全。