在php 的系统中抛出异常, 会使程序退出, 就相当于一个 exit()的 代码, 但我们知道, 要 swoole 出现exit();或者抛出异常这样的代码是致命的, 因为它会是 worker 进程的退出,
所以hyperf 使用了一个异常处理的handler 传送门
看一下 hyper 异常处理的代码
请求中抛出的异常一般 都是在 onrequest方法中执行的, 所有我们找到 onrequest 方法
进入 Hyperf\HttpServer\Server::class 类, 找到 onRequest 方法
可以看到, 所有的 onRequest 被封装在一个 try Catch中, 也就是说 所有的 Throwabel 的异常, 错误类, 都会被获取后, 再由 exceptHandler来处理
上面说的是 原理, 下面来看一下, 异常是怎么使用的
hyperf 已经为我们写好了一个 总的异常处理类, 这里不多说了
看一下我们如何自写义一个异常处理常, 并使用
新建一个异常类 , 继承异常类

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

3.在配置文件中, 把写好的异常处理类, 写入配置文件, 才可以发挥作用

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