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为MyExceptionHandler Ioc::bind(ApiExceptionHandler::class,MyExceptionHandler::class); } } ~~~