抛出异常(重要)

RapPHP中鼓励大家学会抛出异常实例:

  1. public function test($a,$b,$c){
  2. if($a=='1'){
  3. throw new MsgException("你没有权限查看");
  4. }
  5. if($b=='1'){
  6. throw new MsgException("内容不存在");
  7. }
  8. try{
  9. // 逻辑代码
  10. }catch (\Exception $exception) {
  11. //能处理就处理
  12. //不能 throw $exception;
  13. }
  14. return ['a'=>$a,'b'=>$b,'c'=>$c];
  15. }
MsgException 集成自\Exception 是我们需要显示给用户的异常信息;如果你的异常也是需要显示给用户的建议集成自MsgException

异常函数


提供了一个exception函数来快捷抛出MsgException异常

  1. exception('异常消息')

MsgException

  1. public function __construct($message, $code=100000, $data = null)

全局异常处理


我们对所有异常包括MsgException和其他Exception都会进行统一处理,处理类为ApiExceptionHandler::class(处理返回结果是 json 的)和PageExceptionHandler::class(处理返回结果是网页的)

如果你想自己自定义处理全局异常你可以继承ApiExceptionHandler或PageExceptionHandler

如你写个类

  1. class MyExceptionHandler extends ApiExceptionHandler{}

然后在 IOC 里注册就可以了

  1. class AppInit implements Init{
  2. public function appInit(AutoFindHandlerMapping $autoMapping, Router $router){
  3. //绑定ApiExceptionHandler为MyExceptionHandler
  4. Ioc::bind(ApiExceptionHandler::class,MyExceptionHandler::class);
  5. }
  6. }

上一篇:异常与调试   下一篇:异常显示