title: amazing output for try/catch/finally?
body: <p>I run this code :</p>
  
  <pre><code>public static void main(String[] args) {
      System.out.println(catcher());
  }
  
  private static int catcher() {
      try {
          System.out.println("TRY");
          thrower();
          return 1;
      } catch (Exception e) {
          System.out.println("CATCH");
          return 2;
      } finally {
          System.out.println("FINALLY");
          return 3;
      }
  }
  
  private static void thrower() {
      throw new RuntimeException();
  }
  </code></pre>
  
  <p>and I expect to see this at output:</p>
  
  <pre><code>TRY
  CATCH
  FINALLY
  2
  </code></pre>
  
  <p>but surprisingly the output is:</p>
  
  <pre><code>TRY
  CATCH
  FINALLY
  3
  </code></pre>
  
  <p>I'm confused. where goes <code>return 2</code> statement? Is <code>return at finally</code> a bad-practice?</p>