It’s nice to have an adult son who, not only shares my love of coding, but also has inherited a practical sense of humor.

Iteration #1: (my son)

Person jack = new Person('jack');
Person jill = new Person('jill');
 
if (jack.isGoingUphill() == true && jill.isGoingUphill() == true) {
  try {
    WaterWell well = new WaterWell();
    well.fetchPail(jack, jill);
  } catch (FallDownException e) {
    jack.breakCrown();
    jill.tumbleAfter();
  }
}

Iteration #2: (me)

Person jack = new Person('jack');
Person jill = new Person('jill');
 
if (jack.isGoingUphill() == true && jill.isGoingUphill() == true) {
  try {
    WaterWell well = new WaterWell();
    well.fetchPail(jack, jill);
  } catch (FallDownException e) {
    jack.breakCrown();
    try
    {
      jill.tumbleAfter();
    }
    catch (RefusingException e)
    {
      Log.WriteLine ("Sorry Jack!");
    }
  }
}

Iteration #3: (my son)

Person jack = new Person('jack');
Person jill = new Person('jill');
 
if (jack.isGoingUphill() == true && jill.isGoingUphill() == true) {
  try {
    WaterWell well = new WaterWell();
    well.fetchPail(jack, jill);
  } catch (FallDownException e) {
    jack.breakCrown();
    try
    {
      jill.tumbleAfter();
    }
    catch (RefusingException e)
    {
      jack.setRelationship(‘single’).commitToFacebook();
      Log.WriteLine ("Sorry Jack!");
    }
  }
}

I couldn’t have made it any better.