avatar

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

return + if (不好的)

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
//订单创建
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;
}

抛出异常处理 (好的)

Code
1
2
3
4
5
6
7
8
9
10
11
12
13

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

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

自定义异常返回

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

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

以laravel为例

Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
//创建异常类
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('库存不足');
Author: xxh
Link: http://lblog.club/2020/03/05/exception/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.

Comment