public function andThrow($e)
    {
        if (! $e instanceof \Exception) {
            if (is_scalar($e) && class_exists($e) && is_a($e, '\Exception', true)) {
                $e = new $e("Generic message");
            } else {
                throw new \LogicException("Can only create exceptions on-the-fly with a scalar message");
            }
        }

        $this->andReturn(function() use ($e){
            if (! $e instanceof \Exception) {
                throw new \Exception($e);
            } else {
                throw $e;
            }
        });
        
        return $this;
    }