title: Why does multi-catch feature in Java require exceptions to be final?
body: <p>The Oracle documentation on the <a href="http://docs.oracle.com/javase/7/docs/technotes/guides/language/catch-multiple.html" rel="nofollow noreferrer">multi-catch feature</a> added to Java 7 states that the exception parameter in the <code>catch</code> clause is implicitly <code>final</code>.</p>
  
  <p>My question is: <strong>what's the point of such restriction</strong>? Because i can't seem to find a single crucial improvement it brings. Marking a reference object as <code>final</code> only protects the reference itself from being modified, not the object it references, and one is never prohibited to create another reference and modify it in whatever way they want.</p>
  
  <p>A <a href="https://stackoverflow.com/questions/16959436/java-catch-block-caught-exception-is-not-final">somewhat relevant question on SO</a> discusses the reasons why modifying the exception reference in a <code>catch</code> clause is not the wisest thing to do, but it relates to <em>any</em> use of the <code>catch</code> clause, not just the multi-catch form of it. So why does Java make an, ahem, exception for the multi-catch and treat it in a special way?</p>