把调用和getattr分离，不会捕获多余异常 / _step_invoke支持某个步骤不执行