首页
下载
文档
社区
视频
捐赠
源代码
赞助商
AOT 编译器
AI 助理
商业产品
PHP AOT 原生编译器
Swoole-Compiler 代码加密器
CRMEB 新零售社交电商系统
登录
注册
全部
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
发表新帖
jsonrpc 中抛出的异常,http handler 接收到了
json-rpc 接口 getUser,抛出一个 `ServiceException ` ```php /** * Class User * @RpcService(name="v1/user", protocol="jsonrpc", server="json-rpc") * @package App\Rpc\V1 */ class User extends AbstractRpc { public function getUser() { throw new ServiceException('error'); } ``` 配置 `config/autoload/exceptions.php` 中,我有两个服务,分别是 `http` , `json-rpc` > ps: 我的服务name 就是 json-rpc ``` return [ 'handler' => [ 'http' => [ AppExceptionHandler::class, ServiceExceptionHandler::class, ], 'json-rpc' => [ RpcAppExceptionHandler::class, RpcValidationExceptionHandler::class, ], ], ]; ``` 在调用 `v1/user/getUser` 这个接口时,抛出的 `ServiceException` 会被 http 服务器的 `ServiceExceptionHandler` 捕获到,我理解的是应该会被 `RpcAppExceptionHandler` 捕获才对,不会为什么还要分 http json-rpc
发布于6年前 · 1 次浏览 · 来自
开发框架
明志
json-rpc 接口 getUser,抛出一个 `ServiceException ` ```php /** * Class User * @RpcService(name="v1/user", protocol="jsonrpc", server="json-rpc") * @package App\Rpc\V1 */ class User extends AbstractRpc { public function getUser() { throw new ServiceException('error'); } ``` 配置 `config/autoload/exceptions.php` 中,我有两个服务,分别是 `http` , `json-rpc` > ps: 我的服务name 就是 json-rpc ``` return [ 'handler' => [ 'http' => [ AppExceptionHandler::class, ServiceExceptionHandler::class, ], 'json-rpc' => [ RpcAppExceptionHandler::class, RpcValidationExceptionHandler::class, ], ], ]; ``` 在调用 `v1/user/getUser` 这个接口时,抛出的 `ServiceException` 会被 http 服务器的 `ServiceExceptionHandler` 捕获到,我理解的是应该会被 `RpcAppExceptionHandler` 捕获才对,不会为什么还要分 http json-rpc
赞
0
收藏
提问
分享
讨论
建议
公告
开发框架
CodeGalaxy
登录
后参与评论
评论
2020-03-13
李铭昕
首先确认一个问题,你看到被捕获的错误,是 `json-rpc` 抛出的,还是 `http` 抛出的。另外一点就是,如果 `http` 调用 `json-rpc`,`json-rpc` 抛出了错误,然后传到 `http` 中,`http` 的捕获器是否能捕获这个 `ServiceException`。
赞
1
回复
2020-03-13
明志
回复
李铭昕
json-rpc 抛出了错误,然后传到 http 中,http 的捕获器是否能捕获这个 ServiceException。 应该是这个问题,因为我是在同一个实例中测试的
赞
0
回复
2020-03-13
明志
新增了一个 RpcServiceExceptionHandler ,还是会优先走到 ServiceExceptionHandler 中,但 RpcAppExceptionHandler 会先执行. 
赞
0
回复