Java 8:如何使用流中的异常抛出方法?

巴斯蒂安:

假设我有一个类和一个方法

class A {
  void foo() throws Exception() {
    ...
  }
}

现在,我想为A传递的每个实例调用foo

void bar() throws Exception {
  Stream<A> as = ...
  as.forEach(a -> a.foo());
}

问题:如何正确处理异常?该代码无法在我的计算机上编译,因为我不处理foo()可能引发的异常。throws Exceptionbar似乎是没用在这里。这是为什么?

Skiwi:

您需要将方法调用包装到另一个调用中,在该调用中不要引发检查异常您仍然可以抛出的任何子类RuntimeException

普通的包装习惯是这样的:

private void safeFoo(final A a) {
    try {
        a.foo();
    } catch (Exception ex) {
        throw new RuntimeException(ex);
    }
}

(超类型的例外Exception作为例子,切勿尝试自行抓住它)

然后,您可以使用调用它as.forEach(this::safeFoo)

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Java

Java的8个流,如何减少或收“破发”,没有抛出运行时异常?

来自分类Java

如何更换使用Java 8流的方法是什么?

来自分类Java

如何使用Java 8流数组转换为HashMap中

来自分类Java

重新设计方法以将Java 8 Map.computeIfAbsent()与抛出的异常一起使用

来自分类Java

如何使用Java 8流将列表中的值相乘

来自分类Java

如何从Java 8流中引发CHECKED异常?

来自分类Java

Java中的Arrays.copyOfRange方法抛出错误的异常

来自分类Java

聚合Java 8流中的运行时异常

来自分类Java

在Java中,如何使用JUnit验证抛出的异常?

来自分类Java

在Java中重新抛出异常

来自分类Java

重新抛出Java中的异常

来自分类Java

如何捕获Java中“永不抛出”的异常

来自分类Java

如何创建并抛出Java异常?

来自分类Java

为什么不能在方法级别抛出Java流中的检查异常?

来自分类Java

处理流Java 8中的异常

来自分类Java

代码抛出异常时,如何使用Java 8 CompletableFuture进行异常处理?

来自分类Java

Java中的捕获与抛出异常

来自分类Java

如何在Java中的finally块中处理抛出异常

来自分类Dev

Java流:根据流中的值从流中抛出异常

来自分类Dev

如何使用流API在Java 8中对此进行映射?

来自分类Dev

为什么我们不能在Java 8流中抛出异常?

来自分类Dev

通过抛出异常进行Java流控制

来自分类Dev

Java中pop()方法的抛出异常

来自分类Dev

如何声明Scala中抛出检查异常的Java方法的替代?

来自分类Dev

Java中的异常重新抛出

来自分类Dev

Java 8-如何使用CompletableFuture跟踪在异步并行流中调用的异常数

来自分类Dev

如何在 Java 中抛出严重异常?

来自分类Dev

在java 8中使用orElseThrow抛出用户定义的异常时出错

来自分类Dev

如何使用 Java 8 流从列表中过滤元素?

Related 相关文章

  1. 1

    Java的8个流,如何减少或收“破发”,没有抛出运行时异常?

  2. 2

    如何更换使用Java 8流的方法是什么?

  3. 3

    如何使用Java 8流数组转换为HashMap中

  4. 4

    重新设计方法以将Java 8 Map.computeIfAbsent()与抛出的异常一起使用

  5. 5

    如何使用Java 8流将列表中的值相乘

  6. 6

    如何从Java 8流中引发CHECKED异常?

  7. 7

    Java中的Arrays.copyOfRange方法抛出错误的异常

  8. 8

    聚合Java 8流中的运行时异常

  9. 9

    在Java中,如何使用JUnit验证抛出的异常?

  10. 10

    在Java中重新抛出异常

  11. 11

    重新抛出Java中的异常

  12. 12

    如何捕获Java中“永不抛出”的异常

  13. 13

    如何创建并抛出Java异常?

  14. 14

    为什么不能在方法级别抛出Java流中的检查异常?

  15. 15

    处理流Java 8中的异常

  16. 16

    代码抛出异常时,如何使用Java 8 CompletableFuture进行异常处理?

  17. 17

    Java中的捕获与抛出异常

  18. 18

    如何在Java中的finally块中处理抛出异常

  19. 19

    Java流:根据流中的值从流中抛出异常

  20. 20

    如何使用流API在Java 8中对此进行映射?

  21. 21

    为什么我们不能在Java 8流中抛出异常?

  22. 22

    通过抛出异常进行Java流控制

  23. 23

    Java中pop()方法的抛出异常

  24. 24

    如何声明Scala中抛出检查异常的Java方法的替代?

  25. 25

    Java中的异常重新抛出

  26. 26

    Java 8-如何使用CompletableFuture跟踪在异步并行流中调用的异常数

  27. 27

    如何在 Java 中抛出严重异常?

  28. 28

    在java 8中使用orElseThrow抛出用户定义的异常时出错

  29. 29

    如何使用 Java 8 流从列表中过滤元素?

热门标签

归档