spring-webflux - 如何在项目反应器中使用 StepVerifier 验证引发的异常
问题描述
def expectError() {
StepVerifier.create(readDB())
.expectError(RuntimeException.class)
.verify();
}
private Mono<String> readDB() {
// try {
return Mono.just(externalService.get())
.onErrorResume(throwable -> Mono.error(throwable));
// } catch (Exception e) {
// return Mono.error(e);
// }
}
如果 externalService.get 抛出异常而不是返回 Mono.error,则无法使其工作。总是建议使用 try catch 转换为 Mono/Flow,还是有更好的方法来验证这种抛出的异常?
解决方案
大多数情况下,如果用户提供的引发异常的代码以 lambda 形式提供,则异常可以转换为onError
. 但是在这里你直接抛出主线程,所以这不会发生
推荐阅读
- java - 二项式系数数组
- c# - 使用 BorderThickness = 0 向 WPF 表单添加阴影
- docker - 启动容器进程导致“exec:\”/tmp/installer.sh\“:权限被拒绝”
- c - C函数中堆栈的大小是多少?
- intellij-15 - 在 IntelliJ 终端中运行 java 程序
- nativescript - 使用 aws sns 的 nativescript 推送通知
- kubernetes - 使用 mod_auth_openidc 会话 SSO 到 kubernetes
- mysql - Mysql排序顺序日期0000-00-00第一
- android - 升级颤振后创建方法通道 - 无法解析方法 getFlutterView()
- javascript - 单击功能在具有相同类名的元素上执行多次