我在我的项目中使用 Spring Asserts 并希望使用它们(或者可能是其他一些断言)来检查在某些情况下是否抛出异常,例如我有以下代码:
//throws PatternSyntaxException in case if pattern is invalid
Pattern.compile(freeUsersRegex);
Pattern.compile(deletedUsersRegex);
Pattern.compile(movedUsersReges);
...
我想指定一条消息,以防正则表达式无效(每次都不同),以向用户显示哪个正则表达式无效,如下所示:
try {
Pattern.compile(freeUsersRegex);
} catch (PatternSyntaxException e ) {
throw new IllegalArgumentException("Specify valid regular expression for Free users group");
}
try {
Pattern.compile(deletedUsersRegex);
} catch (PatternSyntaxException e ) {
throw new IllegalArgumentException("Specify valid regular expression for Deleted users group");
}
...
但是为每个字符串编写 try/catch 不是很方便,用这样的代码替换上面的代码会很酷:
Assert.isNotThrown(Pattern.compile(freeUsersRegex), PatternSyntaxException.class, "Specify valid regular expression for Free users group");
Assert.isNotThrown(Pattern.compile(deletedUsersRegex), PatternSyntaxException.class, "Specify valid regular expression for Deleted users group");
我在Spring中寻找过这样的Assert,但没有找到。也许其他图书馆也有类似的东西?
谢谢
安德烈
最佳答案
为什么不简单地重用以下类型的实用方法:
public static Pattern createPattern(String regex, String type){
try {
return Pattern.compile(regex);
} catch (PatternSyntaxException e ) {
throw new IllegalArgumentException(
String.format("Specify valid regular expression for %s", type)
);
}
}
关于java - Assert.notThrown 可以在抛出异常时指定一条消息,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38099971/