2015-10-16 49 views
4

使用findbugs掃描以下代碼時,它會報告Dodgy代碼:NP:在新的...中加載已知的空值(在引發新異常的行處)Findbugs報告在驗證構造函數參數時加載已知的空值

有時需要在初始化對象之前檢查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; 
    } 

回答

4

我的猜測是,FindBugs的是指出,在那裏你拋出異常

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

行相當於

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

,並希望你使用後者。是EmpServiceException構造函數的第一個參數是用@NonNull註釋的嗎?

+0

謝謝,就是這樣。 –