gpt4 book ai didi

java - 是否有可用于抛出异常的方法引用?

转载 作者:塔克拉玛干 更新时间:2023-11-03 05:29:09 26 4
gpt4 key购买 nike

假设我有以下代码:

Runnable exceptionHandler = () -> throw new RuntimeException();

有没有办法让它更简洁,现在可用,或者可能在未来的 Java 版本中可用?我期待的是:

Runnable exceptionHandler = RuntimeException::throw;

有关额外信息,我打算将此代码用于可能发生异常情况但并不总是需要抛出 RuntimeException 的方法。我想让来电者在异常情况发生时可以自由地做任何他们想做的事。

在我看来,这在 Java 8 中是不可能的,是否已经讨论过,是否有任何理由表明这是不可能的?

最佳答案

Exception::throw 无效,我在邮件列表中找不到任何相关讨论。

但是,如果您的意图是:“让调用者在异常情况发生时可以自由地做任何他们想做的事情”,您可以使用类似于 CompletableFuture 并写下如下内容:

public static void main(String[] args) throws Exception {
CompletableFuture.runAsync(() -> somethingThatMayThrow())
.exceptionally(t -> { t.printStackTrace(); return null; });
}

private static void somethingThatMayThrow() throws RuntimeException {
throw new RuntimeException();
}

虽然这只适用于未经检查的异常。

关于java - 是否有可用于抛出异常的方法引用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22959427/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com