hyperf 异常处理

在php 的系统中抛出异常, 会使程序退出, 就相当于一个 exit()的 代码, 但我们知道, 要 swoole 出现exit();或者抛出异常这样的代码是致命的, 因为它会是 worker 进程的退出,
在这里插入图片描述所以hyperf 使用了一个异常处理的handler 传送门

看一下 hyper 异常处理的代码
请求中抛出的异常一般 都是在 onrequest方法中执行的, 所有我们找到 onrequest 方法
在这里插入图片描述
进入 Hyperf\HttpServer\Server::class 类, 找到 onRequest 方法
在这里插入图片描述
可以看到, 所有的 onRequest 被封装在一个 try Catch中, 也就是说 所有的 Throwabel 的异常, 错误类, 都会被获取后, 再由 exceptHandler来处理

上面说的是 原理, 下面来看一下, 异常是怎么使用的
hyperf 已经为我们写好了一个 总的异常处理类, 这里不多说了
看一下我们如何自写义一个异常处理常, 并使用

  1. 新建一个异常类 , 继承异常类
    在这里插入图片描述

  2. 为该异常类编写处理器,(handler) , 也就是说当抛出该类异常时, 就使用这个异常处理器来处理

    在这里插入图片描述
    3.在配置文件中, 把写好的异常处理类, 写入配置文件, 才可以发挥作用

在这里插入图片描述


版权声明:本文为hjh15827475896原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。