It is a bit confusing here that $this->execute() has handling for both exceptions and return value.  Shouldn't we be using one or the other?