比如注册用户的时候,随便产生一个错误,假设用户名重复了,$user->signUp() 会抛出异常, 但 $th->getMessage() 得到的错误信息却不是纯粹的文字提示, 而是包含了 Request 的信息,例如这样:

218 Invalid password, it must be a non-blank string.:{\"body\":{\"username\":\"spark\",\"password\":\"\"},\"method\":\"POST\",\"path\":\"\\/1.1\\/classes\\/_User\"}","code":218}

这样带来一个困扰就是,无法直接把错误信息反馈给前端 给用户看,只能通过 $th->getCode() 得到错误码之后自己去官方文档找对应的文字说明,再对应起来反馈回去。

翻了 SDK 的代码后,最终在 BatchRequestError.php 文件中找到了原因:

public function add($request, $response) {
    $error["code"] = isset($response["code"]) ? $response["code"] : 1;
    $error["error"] = "{$error['code']} {$response['error']}:"
                    . json_encode($request);
    $this->errors[] = $error;
    return $this;
}

可以看到在这里 $error["error"] 就已经被“合体”了。
请问这个是 feature 还是 bug,目前已知错误码有 160 多个,难道要开发人员自己一个个做对应?