Java catch块,捕获异常不是最终的

Pet*_*zki 15 java exception try-catch

我正在查看Java SE7的新功能,目前我正在这里:

http://docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html

关于catch多功能,当我遇到这个声明时:

注意:如果catch块处理多个异常类型,则catch参数隐式为final.在此示例中,catch参数ex是final,因此您无法在catch块中为其分配任何值.

我从未注意到在处理捕获的异常的经典案例中,捕获的异常不是最终的.

我只是想知道为什么这首先是一件好事?在我猜想重新抛出它或者记录它的消息之前,对于一个被捕获的异常进行必要的修改是不是不明智?是否应该由创建异常的trowing机制来完成它应该代表什么呢?

我从来没有看到在catch块中修改异常可能有人指出它的好处?

谢谢!

Joa*_*uer 4

它与方法参数几乎相同:

通常不会修改它们,并且许多人都同意它们应该被视为final(是否真正写final在它们前面是一个有争议的问题)。

但由于没有技术要求表明它必须如此final,因此该语言为您提供了选择的选项。

就我个人而言,我知道没有充分的理由修改 catch 块的异常引用。