add wrap-error-hanlder macro