【Salesforce】Argument cannot be null.

【Salesforce】Argument cannot be null.

SalesforceのApex内で単純な数値の計算をしている際にエラーが発生しました。

Argument cannot be null.

よく見るエラーですね。

計算に使用している変数がnullの場合に発生するものです。

コードはこんな感じです。

リストの中身を集計しています。

// 集計結果用
SObj obj = new SObj();
// 集計項目を初期化する
obj.NumField__c = 0;

// 集計を行う
for(SObj tmpObj : objList){

    if(tmpObj.NumField__c != 0){

        // 項目の加算
        obj.NumField__c += tmpObj.NumField__c;  
    }
}

for文内の加算をしている行でエラーが発生しました。

これだけ見て分かる人も多いのではないでしょうか。

集計用の項目を初期化して、if文で項目の値を確認して。。。

if文の中身がおかしいですね。

nullチェックをしているつもりになっていました。

正しくはこうです。

// 集計結果用
SObj obj = new SObj();
// 集計項目を初期化する
obj.NumField__c = 0;

// 集計を行う
for(SObj tmpObj : objList){

    if(tmpObj.NumField__c != null){

        // 項目の加算
        obj.NumField__c += tmpObj.NumField__c;  
    }
}

頭の中でnullチェックをしていると思い込んでいると原因を理解するのに時間がかかったりしますよね。

サクっと直すつもりが5分くらいかかっていました。

No comments.

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です