セーブポイントが見つからない

【Apexエラー】List has no rows for assignment to SObjectについて

こんにちは。にいるです。

今回は開発関連です。
エラー「List has no rows for assignment to SObject」について、見ていきたいと思います。

1.エラー発生原因

「List has no rows for assignment to SObject」」の発生原因は、SOQLやSOSLでSELECTした結果が、0件の場合に発生します。
結果のListをVisualforceページにバインドできていても、結果が0の場合の処理方法をApex側で記載しておかないといけません。

2.エラー解決策

「List has no rows for assignment to SObject」のエラー解決策は、結果が0の場合の処理を記載しておけば発生を防ぐ事ができます。
例えば、リストの中身を調べるために「List.size() == 0」や「List.isEmpty()」を使用する事ができます。
これをif文などの分岐で処理を分けておけば大丈夫です。

3.まとめ

いかがでしたでしょうか。

このエラーはよくぶち当たるので、SELECT文を作成する際は、考慮しておかないといけないですね。
他にも回避方法がないか調べてみます。

他にも色々と標準機能やSalesforce機能について紹介しています。
そのまとめ一覧ページはこちらになりますので、よければ見てみてください。

ではでは!