转载

我们应该总是在第一行检查java中的方法的每个参数为null吗?

每个方法都接受一组参数值.我们是否应该始终验证输入参数的非空值,或者允许代码失败并使用经典的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

原文  https://codeday.me/bug/20181016/291699.html
正文到此结束
Loading...