我这里有这个功能:
Function<Integer, Integer> func = (value) -> value + 5;
func = func.andThen((value) -> {
//Imagine that here some code executed and raised an exception, I'm throwing it
//manually just for the sake of this example.
throw new RuntimeException("failed");
});
func = func.andThen((value) -> {
System.out.println("Reached last function !");
return value;
});
executeFunction(func);
现在,您可以看到我在第一个 andThen 方法中引发了运行时异常。那是因为我想阻止第二个 andThen 被执行。这是最好的方法吗?
另外,我注意到,如果我在不同的线程(异步)中执行此函数,则异常不会打印在我的控制台中,并且我想知道异常发生了。
private static void executeFunction(Function<Integer, Integer> function) {
CompletableFuture.supplyAsync(() -> function.apply(100));
}
在这种情况下,如果我想确保记录异常,但 andThen 链中的下一个函数没有执行,我应该记录并抛出异常吗?这不是一个ati模式吗?
慕尼黑8549860
冉冉说
万千封印
相关分类