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

Newer Version Available

This content describes an older version of this product. View Latest

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

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

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

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

例外 説明
AsyncException 非同期コールのエンキューの失敗など、非同期処理に関する問題を示す例外。
CalloutException 外部システムへのコールの失敗など、Web サービス処理に関する問題を示す例外。
DmlException insert ステートメントでレコードの必要な項目が欠落している場合など、DML ステートメントに関する問題を示す例外。
EmailException 送信の失敗など、メールに関する問題を示す例外。詳細は、送信メールを参照してください。
InvalidParameterValueException 無効なパラメータがメソッドに渡されたか、Visualforce ページで使用される URL に関する問題が発生しました。Visualforce についての詳細は、Visualforce 開発者ガイド』を参照してください。
LimitException ガバナ制限を超えました。この例外は、キャッチできません。
JSONException JSON の逐次化処理および並列化処理に関する問題を示す例外。詳細は、System.JSONSystem.JSONParser、および System.JSONGenerator のメソッドを参照してください。
ListException 範囲外のインデックスへのアクセスなど、リストに関する問題を示す例外。
MathException 0 による除算など、算術演算に関する問題を示す例外。
NoAccessException 現在のユーザがアクセス権を付与されていない sObject へのアクセスなど、承認されないアクセスに関する問題を示す例外。通常は Visualforce ページで使用します。Visualforce についての詳細は、Visualforce 開発者ガイド』を参照してください。
NoDataFoundException 削除された sObject へのアクセスなど、存在しないデータに関する問題を示す例外。通常は Visualforce ページで使用します。Visualforce についての詳細は、Visualforce 開発者ガイド』を参照してください。
NoSuchElementException 特に Iterator next メソッドで使用されます。リストの終わり以降の項目にアクセスしようとすると、この例外が発生します。たとえば、iterator.hasNext() == falseiterator.next() をコールすると、この例外が発生します。
NullPointerException 次のコードで示す例のような、null 値の逆参照に関する問題を示す例外。
1String s;
2s.toLowerCase(); // Since s is null, this call causes
3                 // a NullPointerException
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 型への変換など、型の変換に関する問題を示す例外。
VisualforceException Visualforce ページに関する問題を示す例外。Visualforce についての詳細は、Visualforce 開発者ガイド』を参照してください。
XmlException XML の読み取り、書き込みの失敗など、XmlStream クラスに関する問題を示す例外。

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

1Account[] accts = new Account[]{new Account(billingcity = 'San Jose')};
2try {
3    insert accts;
4} catch (System.DmlException e) {
5    for (Integer i = 0; i < e.getNumDml(); i++) {
6        // Process exception here
7        System.debug(e.getDmlMessage(i)); 
8    }
9}
他の名前空間の例外については、

共通例外メソッド

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

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

DMLException および EmailException メソッド

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

名前 引数 戻り値 説明
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 の enum の値を返します。次に例を示します。
1try {
2  insert new Account();
3}   catch (System.DmlException ex) {
4      System.assertEquals(
5         StatusCode.REQUIRED_FIELD_MISSING,
6         ex.getDmlType(0));
7}

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

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