我是Java 8的新手,并尝试在lambda表达式中引发异常,如下所示:如果subQty小于min或大于max,在这种情况下,我的单元测试将min / max计算为182和255,并且我提交的subQty为10,因此它应该引发异常并且未通过此单元测试。但是,我一直在开绿灯,为什么呢?
public void verifyingIndividualSubmissionValueLimits(String alias, double min, double max)
// ... some code here ...
// Get local stock price
CompletableFuture<Double> localPriceFuture = instrumentRequester.getMidPrice(instId);
// Calculate the min and max quantity
localPriceFuture.thenAcceptBoth(dollarFxRateFuture,
(localPrice, fxRate) -> {
double minLocalValue = min * fxRate;
double maxLocalValue = max * fxRate;
long minQuantity = Math.round(minLocalValue / localPrice);
long maxQuantity = Math.round(maxLocalValue / localPrice);
if (subQty < minQuantity || subQty > maxQuantity) {
log.debug("We should throw an exception because subQty is {}", subQty);
throw new SubmissionValidationException(String.format("Quantity: %s, is not within %s and %s", subQty, minQuantity, maxQuantity));
}
}
);
}
您在其他线程中引发异常。您正在创建一个计算最小,最大速率并引发异常的线程,但是线程中发生异常,因此您无法在主线程中看到任何异常(在这种情况下verifyingIndividualSubmissionValueLimits)。您可以在这里阅读回调和异步线程
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。