- 抛出异常(重要)
- 异常函数
- MsgException
- 全局异常处理
- 异常函数
抛出异常(重要)
RapPHP中鼓励大家学会抛出异常实例:
public function test($a,$b,$c){if($a=='1'){throw new MsgException("你没有权限查看");}if($b=='1'){throw new MsgException("内容不存在");}try{// 逻辑代码}catch (\Exception $exception) {//能处理就处理//不能 throw $exception;}return ['a'=>$a,'b'=>$b,'c'=>$c];}
MsgException 集成自\Exception 是我们需要显示给用户的异常信息;如果你的异常也是需要显示给用户的建议集成自MsgException
异常函数
提供了一个exception函数来快捷抛出MsgException异常
exception('异常消息')
MsgException
public function __construct($message, $code=100000, $data = null)
全局异常处理
我们对所有异常包括MsgException和其他Exception都会进行统一处理,处理类为ApiExceptionHandler::class(处理返回结果是 json 的)和PageExceptionHandler::class(处理返回结果是网页的)
如果你想自己自定义处理全局异常你可以继承ApiExceptionHandler或PageExceptionHandler
如你写个类
class MyExceptionHandler extends ApiExceptionHandler{}
然后在 IOC 里注册就可以了
如
class AppInit implements Init{public function appInit(AutoFindHandlerMapping $autoMapping, Router $router){//绑定ApiExceptionHandler为MyExceptionHandlerIoc::bind(ApiExceptionHandler::class,MyExceptionHandler::class);}}
上一篇:异常与调试 下一篇:异常显示
