title: Java public class Plane
body: <p>Hi can someone give this program a look in? I don't understand why the output is <code>_c</code>. The answer in the book says "Once s3() throws the exception to s2(),s2() throws it to s1(), and no more of s2()'s code will be executed.". Why not?</p>
  
  <pre><code>public class Plane {
      static String s = "_";
      public static void main(String[] args) {
          new Plane().s1();
          System.out.println(s);
      }
          void s1() {
              try { s2(); }
              catch (Exception e)  { s += "c"; }
      }
          void s2() throws Exception {
              s3(); s+= "2";
              s3(); s+= "2b";
      }
          void s3() throws Exception {
              throw new Exception();
              }
  
  }
  </code></pre>