Service层咋来返回数据和错误

我在项目中使用了service层,如果我在里面要返回,错误提示和数据,这个想问下大家是咋弄的。是直接在service里面抛出错误,然后在外面的控制器里面捕获吗

《L04 微信小程序从零到发布》
从小程序个人账户申请开始,带你一步步进行开发一个微信小程序,直到提交微信控制台上线发布。
《G01 Go 实战入门》
从零开始带你一步步开发一个 Go 博客项目,让你在最短的时间内学会使用 Go 进行编码。项目结构很大程度上参考了 Laravel。
最佳答案

1.如果想service抛出异常,controller接收,那么controller->try+catch,service->throw即可;

2.如果无需再控制层处理的化,直接全局异常抛出的话,直接再App\Exceptions\Handler.php监听异常类即可。

——而像你说的使用了 service 层,如果我在里面要返回,错误提示和数据

简化版写法
service:
$this->error = '动态将于`' . date('Y-m-d H:i:s', $push_time) . '`发布成功!';
return false;

controller:
$status = $service->function
$service->error
1年前 评论
讨论数量: 7

1.如果想service抛出异常,controller接收,那么controller->try+catch,service->throw即可;

2.如果无需再控制层处理的化,直接全局异常抛出的话,直接再App\Exceptions\Handler.php监听异常类即可。

——而像你说的使用了 service 层,如果我在里面要返回,错误提示和数据

简化版写法
service:
$this->error = '动态将于`' . date('Y-m-d H:i:s', $push_time) . '`发布成功!';
return false;

controller:
$status = $service->function
$service->error
1年前 评论

我是直接在service抛出异常,然后在全局异常进行处理

1年前 评论

简单的做法就是直接在service中抛异常,然后在 App\Exceptions\Handler.php 中集中处理。

1年前 评论
sanders

Service 里面直接抛

1年前 评论
DonnyLiu

直接抛出异常的

1年前 评论

除了方法之类的需要回参判断,其他一律直接 throw,然后全局捕获 Exception 就行,要不你返回到 Controller 然后 Controller 还需要再判断一次,然后再返回,层层套娃。

1年前 评论

file

file 就是这么简单随意 要啥自行车

1年前 评论

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