是否使用断言函数参数强制执行的有效性一个很好的做法。我正在浏览Spring Framework的源代码,我注意到他们使用了很多Assert.notNull
。这里有一个例子认为是好的做法?
public static ParsedSql parseSqlStatement(String sql) {
Assert.notNull(sql, "SQL must not be null");}
这里是另外一个:
public NamedParameterJdbcTemplate(DataSource dataSource) {
Assert.notNull(dataSource,
"The [dataSource] argument cannot be null.");
this .classicJdbcTemplate = new JdbcTemplate(dataSource);
}
public NamedParameterJdbcTemplate(JdbcOperations classicJdbcTemplate) {
Assert.notNull(classicJdbcTemplate,
"JdbcTemplate must not be null");
this .classicJdbcTemplate = classicJdbcTemplate;
}
仅供参考,Assert.notNull
(不是assert
语句)在一个实用程序类的定义如下:
public abstract class Assert {
public static void notNull(Object object, String message) {
if (object == null) {
throw new IllegalArgumentException (message);
}
}
}
请注意,这不是'assert'。在这种情况下,你应该总是抛出异常。默认情况下,assert关闭。 – 2010-03-14 02:45:12
我不确定这个'Assert'类用于什么。我习惯了'assert'语句:http://java.sun.com/j2se/1.4.2/docs/guide/lang/assert.html – FrustratedWithFormsDesigner 2010-03-14 02:46:46
你问是否有断言是好的(是的,它是)?或者assert关键字是否允许您编写断言然后关闭以进行部署,对于此目的而言更有用,那么会引发抛出异常(不确定)的“常规”if语句? – Thilo 2010-03-14 03:13:44