小编Far*_*yev的帖子

Java不捕获异常

我正在尝试为构造函数实现 lambda 表达式。我的构造函数可以抛出 IllegalArgumentException。我尝试了不同的方法。第一种方法是调用 lambda 表达式:

catchThrowable(() -> new SomeClass(testVar1, null, testVar2));
Run Code Online (Sandbox Code Playgroud)

它工作得很好,我可以捕获异常然后解析它。当我尝试使用自己的界面时出现问题:

interface SomeClassFactory{
        SomeClass create (String testVar1, String persId, String testVar2) throws IllegalArgumentException;
}

SomeClassFactory factory = SomeClass::new;
Run Code Online (Sandbox Code Playgroud)

然后我用它作为:

catchThrowable((ThrowableAssert.ThrowingCallable) factory.create(testVar1, null, testVar3));
Run Code Online (Sandbox Code Playgroud)

但最后一行代码没有捕获任何异常,我的代码给出了运行时异常并停止。您能否解释一下为什么会发生这种情况,如果可能的话,如何解决?

java lambda junit assertj junit5

2
推荐指数
1
解决办法
213
查看次数

标签 统计

assertj ×1

java ×1

junit ×1

junit5 ×1

lambda ×1