Findbugs报告在验证构造函数参数时加载已知的空值

时间:2015-10-16 10:00:06

标签: constructor null findbugs

使用findbugs扫描下面的代码后,会报告Dodgy代码:NP:在新....中加载已知空值(在抛出新异常的行)

有时需要在初始化对象之前检查null。 为什么这被认为是"狡猾的" ??

public class Employee{

  @Valid
  private Department dept;

  @JsonCreator
  public Employee(@JsonProperty(value = "department", required = true) Department aDepartment)
      throws EmpServiceException{
    if (aDepartment == null) {
      throw new EmpServiceException(aDepartment, "Invalid Request");
    }
    this.dept= aDepartment;
  }

1 个答案:

答案 0 :(得分:5)

我的猜测是FindBugs指出你抛出异常的行

throw new EmpServiceException(aDepartment, "Invalid Request");

相当于

throw new EmpServiceException(null, "Invalid Request");

并希望你使用后者。是用EmpServiceException注释的@NonNull构造函数的第一个参数吗?