在Java中创建一个方法,如果链中的前一个方法抛出异常,该方法将链接到其他方法并调用fail()?

在Java中创建一个方法,如果链中的前一个方法抛出异常,该方法将链接到其他方法并调用fail()?,java,generics,chaining,Java,Generics,Chaining,以下是我想要实现的目标。我正在使用Mockito进行Java单元测试。我想为我的项目创建一个名为或failifexceptionthrown()的通用方法,我可以链接到测试中的任何方法调用,基本上只需在方法内部调用fail(“引发了意外异常”,e)。我对我是否应该这样做不感兴趣,因为我可以看到为什么我应该这样做或不应该这样做的两面性。从纯Java学习的角度来看,我只是对如何做到这一点感兴趣。以下是您不能做到的,也是一个更好的选择: method().failOnExcept(); //

以下是我想要实现的目标。我正在使用Mockito进行Java单元测试。我想为我的项目创建一个名为
或failifexceptionthrown()
的通用方法,我可以链接到测试中的任何方法调用,基本上只需在方法内部调用
fail(“引发了意外异常”,e)
。我对我是否应该这样做不感兴趣,因为我可以看到为什么我应该这样做或不应该这样做的两面性。从纯Java学习的角度来看,我只是对如何做到这一点感兴趣。

以下是您不能做到的,也是一个更好的选择:

method().failOnExcept();     // BAD: as soon as method() terminates unexpectedly
                             // failOnExcept() cannot be called - instead, control flow
                             // shifts to a catch block (error handling) or the caller
                             // of the method (if error handling failed/re-throws)
failOnExcept(() -> method()) // GOOD: we attempt to try method(); if it fails,
                             // failOnExcept() will handle it somehow
我对我是否应该这样做不感兴趣,因为我可以看到为什么我应该这样做或不应该这样做的两面性。从纯Java学习的角度来看,我只是对如何实现它感兴趣

考虑到这一点,我不打算在这里讨论替代方案的优点——只要知道我们不这样做的主要原因是因为它无法做到