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

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

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

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

11个月前 评论
讨论数量: 1

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

11个月前 评论

请勿发布不友善或者负能量的内容。与人为善,比聪明更重要!

社区文档:

将托管在 packagist.org 和 github.com 的扩展包使用国内 CDN 加速
GitHub Laravel 扩展包 TOP 250
速查表方便快速查询框架功能,支持手机访问,支持中英文版本
Laravel 中文文档,由社区用户翻译和维护,将会保持一直更新
此文档的目的,就是为了提高技术团队的凝聚力、一致性和生产效率。
开发环境的部署,开发者工具的选择,适用于 Mac 和 Windows。
浓缩过后的精华
Laravel Nova 后台管理面板文档的中文翻译
Lumen 中文文档,由社区用户翻译和维护,将会保持一直更新
Laravel 下知名扩展包 Dingo API 的中文文档,Laravel API 开发必知必会