gpt4 book ai didi

java - 传递要捕获的异常类型

转载 作者:行者123 更新时间:2023-11-28 21:09:54 25 4
gpt4 key购买 nike

我正在为自己的代码构建一个小的测试框架,我希望能够这样做:

test.callTo(() -> {/*...*/}).doesThrow(SomeException.class);

或类似的东西。

callTo 方法只会构建一个包含 java.lang.Runnable(或类似)的类的实例。该类将有一个doesThrow 方法,该方法采用一些参数 表示要捕获的异常类型,并执行以下操作:

try {
try {
method.run();
} catch(ThePassedInExceptionType e) {
/* test passed */
return;
}
} catch (Throwable e) {}
/* test failed */

这种事情可能吗?如果是,如何实现?如果不是,除了在测试代码中执行 try/catch 之外,我还能做些什么来确保我的代码抛出正确的异常?

最佳答案

你可以做的是传递一个 Class<? extends Exception> .调用此参数 clazz .

那你可以做

catch (Exception e) {
if (clazz.isInstance(e))
// do something
}

我不确定这是否是好的做法,但它应该有效。

关于java - 传递要捕获的异常类型,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36000690/

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