您可以传递Class对象并以编程方式检查。
public static void checkForException(String message,
Class exceptionType, ExpectedExceptionBlock block) {
try {
block.exceptionThrowingCode();
} catch (Exception ex) {
if ( exceptionType.isInstance(ex) ) {
return;
} else {
throw ex; //optional?
}
}
fail(message);
}
//...
checkForException("Expected an NPE", NullPointerException.class, //...
我不知道你是否想要重新打倒;重新启用同样会失败/错误的测试,但在语义上我不会,因为它基本上意味着“我们没有得到我们预期的异常”,所以代表一个编程错误,而不是测试环境错误。