我正在检查 Java SE7 的新功能,我目前处于这一点:
http://docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html
关于 catch multiple 功能,当我遇到这个声明时:
注意:如果一个 catch 块处理多个异常类型,则 catch 参数是隐式 final 的。在此示例中,catch 参数 ex 是最终参数,因此您不能在 catch 块中为其分配任何值。
我从来没有注意到在处理捕获的异常的经典案例中捕获的异常不是最终的。
我只是想知道为什么这首先是一件好事?在我猜想重新抛出它或者记录它的消息之前,本质上修改一个捕获的异常不是不明智的吗?是否应该由 trowing 机制来创建异常,以便它准确地代表它应该做什么?
我从未见过在 catch 块中修改异常,也许有人能指出它的好处?