この文章は Salesforce 機械翻訳システムを使用して翻訳されました。詳細はこちらをご参照ください。
英語に切り替える

Exception クラスおよび組み込み例外

例外は、コード実行の正常な流れを中断させるエラーを示します。Apex 組み込み例外を使用するか、カスタム例外を作成できます。すべての例外には共通のメソッドがあります。

すべての例外は、エラーメッセージや例外型を返す組込みメソッドをサポートしています。標準の exception クラスに加え、例外にはさまざまな型があります。

System 名前空間の例外を次に示します。

例外 説明
AssertException コードの実行が停止する System.assert エラー。必要に応じて、assert() メソッドの最後の (msg) 引数で指定したカスタムメッセージを含めます。
AuraException 従来の Aura 関連の例外。代わりに、System.AuraHandledException を使用します。
AuraHandledException JavaScript コントローラにカスタムエラーメッセージを返します。「Apex サーバ側コントローラからエラーを返す」を参照してください。
AsyncException 非同期コールのエンキューの失敗など、非同期処理に関する問題を示す例外。
BigObjectException Big Object オブジェクトレコードに関する問題 (Big Object レコードへのアクセスまたは挿入試行中の接続タイムアウトなど)。
CalloutException 外部システムへのコールアウトの失敗など、Web サービス処理に関する問題を示す例外。
DataWeaveScriptException DataWeave in Apex 内で発生する実行時のスクリプトエラー。
DmlException insert ステートメントでレコードの必要な項目が欠落している場合など、DML ステートメントに関する問題を示す例外。
DuplicateMessageException 重複するキュー可能な署名でジョブをキューに追加しようとしています。
EmailException 送信の失敗など、メールに関する問題を示す例外。詳細は、「送信メール」を参照してください。
ExternalObjectException 外部オブジェクトレコードに関する問題 (外部システムに保存されているデータへのアクセス試行中の接続タイムアウトなど)。
FinalException 参照のみのコレクションまたはレコード (after-update トリガの sObject やファイナル変数など) を変更しようとする試行。この例外が発生すると実行が停止します。
FlowException Apex からのフローインタビューの開始に関する問題。たとえば、有効なバージョンのフローが見つからない場合や、Apex から開始できない場合などがこれに該当します。
HandledException 処理される一般的な例外。
IllegalArgumentException メソッド呼び出しで、不正な引数が指定されています。たとえば、Null 以外の引数を要求するメソッドに Null 値が渡された場合に、この例外が発生します。
InvalidHeaderException 不正なヘッダー引数が Apex REST コールに渡されました。たとえば、ヘッダー名が cookie の場合に RestResponse.addHeader(name, value) メソッドをコールすると、この例外が発生します。
InvalidParameterValueException この例外は Visualforce ページと Salesforce Functions の両方で使用されます。
Visualforce
無効なパラメータがメソッドに渡されるか、Visualforce ページで使用される URL に関して問題が起きた場合にこの例外が発生します。Visualforce についての詳細は、『Visualforce 開発者ガイド』を参照してください。
Salesforce Functions
Function.get()functionName パラメータが正しい project name.function name 形式でない場合にこの例外が発生します。Salesforce Functions についての詳細は、「Function.get()」を参照してください。
LimitException ガバナ制限を超えました。この例外は、キャッチできません。
JSONException JSON のシリアライゼーション処理およびデシリアライゼーション処理に関する問題を示す例外。詳細は、System.JSONSystem.JSONParser、および System.JSONGenerator のメソッドを参照してください。
ListException 範囲外のインデックスへのアクセスなど、リストに関する問題を示す例外。
MathException 0 による除算など、算術演算に関する問題を示す例外。
NoAccessException 現在のユーザがアクセス権を付与されていない sObject へのアクセスなど、承認されないアクセスに関する問題を示す例外。この例外は Visualforce ページで使用します。Visualforce についての詳細は、『Visualforce 開発者ガイド』を参照してください。
NoDataFoundException この例外は Visualforce ページと Salesforce Functions の両方で使用されます。
Visualforce
アクセスを試みた sObject が削除されていたなど、データが存在しなかった場合にこの例外が発生します。Visualforce についての詳細は、『Visualforce 開発者ガイド』を参照してください。
Salesforce Functions
Function.get() メソッドの functionName パラメータに指定されたプロジェクトまたは関数名が見つからない場合にこの例外が発生します。Salesforce Functions についての詳細は、「Function.get()」を参照してください。
NoSuchElementException リストの範囲外の項目にアクセスしようとすると、この例外が発生します。この例外は、イテレータnext メソッドで使用されます。たとえば、iterator.hasNext() == falseiterator.next() をコールすると、この例外が発生します。この例外は、Apex Flex キューメソッドでも使用され、Flex キューの無効な位置にあるジョブにアクセスしようとすると発生します。
NullPointerException 次のコードで示す例のような、null 値の逆参照に関する問題を示す例外。
QueryException sObject の単一変数に対する、レコードを返さない、または複数のレコードを返すクエリの割り当てなど、SOQL クエリに関する問題を示す例外。
RequiredFeatureMissing Chatter が有効でない組織にリリースされているコードに Chatter 機能が要求されている。
SearchException SOAP API search() コールで実行される SOSL クエリの問題を示す例外。たとえば、searchString パラメータに含まれる文字数が 2 文字未満。詳細は、『SOAP API 開発者ガイド』を参照してください。
SecurityException Crypto ユーティリ��ィクラスの静的メソッドに関する問題を示す例外。詳細は、「Crypto クラス」を参照してください。
SerializationException データのシリアライゼーションに関する問題を示す例外。この例外は Visualforce ページで使用します。Visualforce についての詳細は、『Visualforce 開発者ガイド』を参照してください。
SObjectException insert の間のみ変更可能な update ステートメント内の項目の変更など、sObject レコードに関する問題を示す例外。
StringException ヒープサイズを超える string など、string に関連する問題を示す例外。
TypeException valueOf メソッドを使用した string 型「a」の integer 型への変換など、型の変換に関する問題を示す例外。
UnexpectedException Salesforce 内の復旧できない内部エラーが発生しました。この例外が発生すると実行が停止します。必要に応じて、Salesforce カスタマーサポートに詳細をお問い合わせください。
VisualforceException Visualforce ページに関する問題を示す例外。Visualforce についての詳細は、『Visualforce 開発者ガイド』を参照してください。
XmlException XML の読み取り、書き込みの失敗など、XmlStream クラスに関する問題を示す例外。

DmlException 例外の使用例を次に示します。

他の名前空間の例外については、以下を参照してください。

共通例外メソッド

例外メソッドは、例外のインスタンスからコールされ、処理されます。次の表にすべてのインスタンス例外メソッドを示します。すべての例外型に共通で次のメソッドが含まれます。

名前 引数 戻り値の型 説明
getCause Exception 例外オブジェクトとして例外の原因を返します。
getLineNumber Integer 例外が発生した箇所の行番号を返します。
getMessage string ユーザに表示されるエラーメッセージを返します。
getStackTraceString string 発生した例外のスタック追跡を文字列として返します。
getTypeName string DmlException、ListException、MathException などの例外型を返します。
initCause Exception cause Void この例外の原因が設定されていない場合は設定します。
setMessage String s Void ユーザに表示されるエラーメッセージを設定します。

DMLException および EmailException メソッド

共通例外メソッドに加え、DMLException および EmailException には次のメソッドもあります。

名前 引数 戻り値の型 説明
getDmlFieldNames Integer i String [] 失敗した i 番目の行に示されるエラーの原因となった項目の名前を返します。
getDmlFields Integer i Schema.sObjectField [] 失敗した i 番目の行に示されるエラーの原因となった項目の項目トークンを返します。項目トークンについての詳細は、「動的 Apex」を参照してください。
getDmlId Integer i string 失敗した i 番目の行に示されるエラーの原因となったレコードの ID を返します。
getDmlIndex Integer i Integer 失敗した i 番目の行の元の行位置を返します。
getDmlMessage Integer i string 失敗した i 番目の行のユーザメッセージを返します。
getDmlStatusCode Integer i string 非推奨。代わりに getDmlType を使用してください。失敗した i 番目の行の Apex 失敗コードを返します。
getDmlType Integer i System.StatusCode System.StatusCode 列挙の値を返します。次に例を示します。

System.StatusCode についての詳細は、「列挙」を参照してください。

getNumDml Integer DML 例外で失敗した行数を返します。

QueryException のメソッド

共通例外メソッドに加え、QueryException には次のメソッドもあります。

名前 引数 戻り値の型 説明
getInaccessibleFields Map<String,Set<String>> 各キーが sObjectType で、その対応する値が完全修飾形式 (Namespace__FieldName__c) のアクセス不可の一連の項目名である対応付けを返します。

このメソッドを使用して、QueryException の原因を確認します。返される対応付けにデータが含まれるのは、QueryException をスローしたメソッドが (デフォルトのシステムモードではなく) ユーザモードで実行されている場合のみです。

次のコードサンプルでは、ユーザに Contact.Email および Account.Website 項目への項目レベルセキュリティのアクセス権がないことを想定しています。