title: Unexpected exception handling during compilation
body: <p>I encountered the following method, which to my surprise compiled just fine:</p>
  
  <pre><code>private String getControlMessageBlocking() throws ProtocolException,
          InterruptedException, IOException {
      try {
          // &lt;Code that may throw any of the three listed exceptions&gt;
          return controlMessage;
      } catch (Exception e) {
          throw e;
      }
  
  }
  </code></pre>
  
  <p>Why isn't it necessary for the <code>Exception</code> to be caught?</p>