每个方法都接受一组参数值.我们是否应该始终验证输入参数的非空值,或者允许代码失败并使用经典的RunTimeException?
我看到很多代码,人们并没有真正检查输入参数的无效性,只是使用参数编写业务逻辑.什么是最好的方法?
void public( String a, Integer b, Object c) { if( a == null || b == null || c == null) { throw new RunTimeException("Message..."); } .....business logic..... }
最好的方法是只在必要时进行检查.
例如,如果你的方法是私有的,那么你知道没有人在使用它,而且你知道你没有传递任何空值,那么没有必要再次检查.
如果您的方法是公开的,谁知道您的API的用户将尝试和做什么,那么更好的检查.
如有疑问,请检查.
然而,如果你能做的最好,会抛出一个NullPointerException,然后可能不想检查.例如:
int getStringLength(String str) { return str.length(); }
即使你检查了null,一个合理的选项将抛出一个NullPointerException,str.length()将为你做任何事情.
代码日志版权声明:
翻译自:http://stackoverflow.com/questions/5172948/should-we-always-check-each-parameter-of-method-in-java-for-null-in-the-first-li