我正在编写一些 JUnit 测试来验证是否MyCustomException
引发了类型异常。但是,此异常多次包装在其他异常中,例如 InvocationTargetException,而 InvocationTargetException 又被包装在 RuntimeException 中。
确定 MyCustomException 是否以某种方式导致我实际捕获的异常的最佳方法是什么?我想做这样的事情(见下划线):
try { doSomethingPotentiallyExceptional(); fail("Expected an exception."); } catch (RuntimeException e) { if (!e.
原由(MyCustomException.class) fail("Expected a different kind of exception."); }
我想避免调用getCause()
一些“层”深,以及类似的丑陋解决方法。有没有更好的方法?
(显然,Spring 有NestedRuntimeException.contains(Class),它可以满足我的要求 - 但我没有使用 Spring。)
关闭: 好的,我想真的没有绕过实用方法:-) 感谢所有回复的人!