• 抛出异常(重要)
    • 异常函数
      • MsgException
    • 全局异常处理

    抛出异常(重要)

    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. }

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