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

Newer Version Available

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

Exception ステートメント

Apex では、Exception を使用して、コード実行の正常な流れを中断させるエラーその他のイベントを記録します。throw ステートメントは例外の生成に使用でき、trycatch、および finally は例外から適切に復旧するために使用できます。

throw ステートメント

throw ステートメントを使用して、エラーが発生したことを通知できます。例外を発生させるには、throw ステートメントに例外オブジェクトを指定して、特定のエラーに関する情報を提供します。次に例を示します。
1throw exceptionObject;

Try-Catch-Finally ステートメント

trycatchfinally の各ステートメントを使用して、発生した例外から適切に復旧できます。
  • try ステートメントは例外が発生する可能性のあるコードのブロックを識別します。
  • catch ステートメントは、特定の種類の例外を処理できるコードのブロックを識別します。単一の try ステートメントに対して、複数の catch ステートメントを関連付けられますが、各 catch ステートメントには一意の例外種別が必要です。また、特定の例外種別が 1 つの catch ブロックでキャッチされると、残りの catch ブロックが存在する場合でもそれらのブロックは実行されません。
  • 必要に応じて、finally ステートメントは実行が保証されているコードのブロックを識別し、try ブロック内のコードの後でクリーンアップすることができます。1 つ try ステートメントに finally ステートメントを 1 つのみ関連付けられます。finally ブロック内のコードは、発生して処理された例外の種別に関係なく、常に実行されます。

構文

これらのステートメントの構文は次のとおりです。

1try {
2 code_block
3} catch (exceptionType) {
4 code_block
5}
6// Optional catch statements for other exception types.
7// Note that the general exception type, 'Exception',
8// must be the last catch block when it is used.
9} catch (Exception e) {
10 code_block
11}
12// Optional finally statement
13} finally {
14 code_block
15
16}
これは、try-catch-finally ブロックの骨格のみの例です。
1swfobject.registerObject("clippy.codeblock-2", "9");try {
2    // Perform some operation that 
3    //   might cause an exception.
4} catch(Exception e) {
5    // Generic exception handling code here.
6} finally {
7    // Perform some clean up.
8}

キャッチできない例外

キャッチできない特殊なタイプの組み込み例外もあります。このような例外は、Force.com プラットフォームの重大な状況に関連付けられています。このような状況では、コードの実行を中止する必要があります。例外処理で実行を再開することはできません。このような例外の 1 つとして、ガバナ制限に達した場合 (SOQL クエリの最大発行数に達した場合など) に実行時に発生する制限の例外 (System.LimitException) があります。他の例として、アサーションステートメント (System.assert メソッドを使用) に失敗した場合に発生する例外やライセンスの例外が挙げられます。

例外をキャッチできない場合、catch ブロックや finally ブロック (ある場合) は実行されません。