Laravel 中如何控制返回的错误, 正确的写法是什么?
0

逻辑层可能会返回错误.

所以 controller 层代码如下, 需要判断逻辑层返回的状态码, 如何能够优雅的处理?

        $storeInfo = $this->htmlHandleService->getStoreInfo($webName, $htmlInfo['data']);
        if ($storeInfo['code'] !== 200) {
            Log::error($storeInfo['data']);
            die;
        }

        // 获取 coupons 信息.
        $couponsInfo = $this->htmlHandleService->getCouponsInfo($webName, $htmlInfo['data']);
        if ($couponsInfo['code'] !== 200) {
            Log::error($couponsInfo['data']);
            die;
        }

        // 数据处理, 保存商城信息.
        $saveStoreRes = $this->couponsStorageService->saveStore($storeInfo['data']);
        if ($saveStoreRes['code'] !== 200) {
            Log::error($saveStoreRes['data']);
            die;
        }

        // 数据处理, 保存 coupons 信息.
        $saveStoreRes = $this->couponsStorageService->saveCoupons($saveStoreRes['data'], $couponsInfo['data']);
        if ($saveStoreRes['code'] !== 200) {
            Log::error($saveStoreRes['data']);
            die;
        }

        // 推送到队列, 通知抓取完毕, 可以后处理.
        $pushRes = Redis::lpush(config('coupons.laterHandleQueueName'), strtolower($saveStoreRes['data']['id']));
        if (! $pushRes) {
            Log::error('push 到队列: ' . config('coupons.laterHandleQueueName') . ' 失败');
            die;
        }

想我这样, 如何能够优雅的处理返回的错误.

我这个是 cli 下的 command 脚本.

当才华还支持不起理想时,就应该静下心来好好学习了。

《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
最佳答案

service层出错时应该以抛出异常的形式而不是return ['code' => -1]这种- -, ps:抛异常也是可以带上错误码的。这样调用方这边加个try catch即可了,而不用每个地方都要判断下code。

4个月前
讨论数量: 1

service层出错时应该以抛出异常的形式而不是return ['code' => -1]这种- -, ps:抛异常也是可以带上错误码的。这样调用方这边加个try catch即可了,而不用每个地方都要判断下code。

4个月前

  • 请注意单词拼写,以及中英文排版,参考此页
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`, 更多语法请见这里 Markdown 语法
  • 支持表情,使用方法请见 Emoji 自动补全来咯,可用的 Emoji 请见 :metal: :point_right: Emoji 列表 :star: :sparkles:
  • 上传图片, 支持拖拽和剪切板黏贴上传, 格式限制 - jpg, png, gif
  • 发布框支持本地存储功能,会在内容变更时保存,「提交」按钮点击时清空
  请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!