用异常处理来精简你的代码

return + if (不好的)

//订单创建
public function order()
{
 //确认库存是否足够
     if(! $this->checkStock());
     return $this->error("库存不足");
 }

//错误消息返回
protected function error($meg){ return response()->json([ "error" => $msg,"code" => 400 ]); }

protected function checkStock()
{
     $stock = 0; 
     if(! $stock)
     return true;
     return false;
 }

抛出异常处理 (好的)


public function order()
{
 //确认库存是否足够
     $this->checkStock();
}

protected function checkStock()
{
     $stock = 0; 
     if(! $stock) 
     throw new \Exception('库存不足');
}

自定义异常返回

既然错误了,那你要返回错误消息给前端啊。

所以这个时候就需要自定义异常了。

以laravel为例

//创建异常类
php artisan make:exception ErrorMessageException

打开app/Exception/ErrorMessageException.php

编辑handle方法

public function render($request)
{
     return response()->json([ "error" => $this->getMessage(),"code" => 400 ]);
}throw new \Exception('库存不足');
替换成
throw new ErrorMessageException('库存不足');  
本作品采用《CC 协议》,转载必须注明作者和本文链接
专心学习不瞎搞
《L01 基础入门》
我们将带你从零开发一个项目并部署到线上,本课程教授 Web 开发中专业、实用的技能,如 Git 工作流、Laravel Mix 前端工作流等。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
讨论数量: 1

提示:使用自定义的 Exception 类型是更优解哦。

4年前 评论

讨论应以学习和精进为目的。请勿发布不友善或者负能量的内容,与人为善,比聪明更重要!
未填写
文章
87
粉丝
105
喜欢
480
收藏
717
排名:109
访问:8.7 万
私信
所有博文
社区赞助商