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

逻辑层可能会返回错误.

所以 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 脚本.

当才华还支持不起理想时,就应该静下心来好好学习了。
qiuyuhome
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《L03 构架 API 服务器》
你将学到如 RESTFul 设计风格、PostMan 的使用、OAuth 流程,JWT 概念及使用 和 API 开发相关的进阶知识。
最佳答案

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

5年前 评论
讨论数量: 1

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

5年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!