IT人材をお探しの方は、まずはお電話ください。担当営業がすぐにご要望にマッチした人材をご提案いたします。
tel:03-6409-6766 お急ぎの方はお電話ください

ブログTOP > IT・技術関連 > Salesforceのthrow Exceptionによるエラー処理のメリットと使用例

Salesforceのthrow Exceptionによるエラー処理のメリットと使用例

IT・技術関連 更新日:2024.09.05
エンジニア採用
Salesforceのthrow Exceptionによるエラー処理のメリットと使用例

SalesforceにおけるthrowなどのExceptionを使用したエラー処理 SalesforceのExceptionステートメントに分類されるthrowステートメントは、Exception(例外)を生成します。 throwによって生成されたException(例外)を使用して、コードの正常な実行が中断されたことを通知できます。さらに、Exceptionステートメントのtry、catch、finallyを使用して、Exception(例外)から復旧する処理を実行できます。

Exceptionステートメントによるエラー処理のメリット

Exceptionステートメントを使用すると、エラー処理を簡素化できるメリットがあります。 Salesforceにおけるエラー処理にはException(例外)の他に、System.assert コールによるアサーション、エラーコードやBoolean値を返すなどの方法がありますが、これらと比較してよりシンプルにエラー処理を実行できます。 Exceptionステートメントでは、コールされたメソッドからコール側までの範囲で、上位へとバブルアップして、エラー処理を実行するcatch ステートメントを発見します。そのため、エラーを処理するためのコードを各メソッドに用意する必要がありません。 また、finallyステートメントにより、エラーの原因となる変数のリセットやデータの削除などを行い、例外の発見から復旧までを一元的に実行できます。

Exception(例外)によるエラー処理の流れ

Exceptionステートメントを使用して、以下のようなエラー処理を実行できます。 1. Exception(例外)が発生すると、コードの実行を停止する。 2. Exception(例外)発生前に処理された DML操作をロールバックする。 → データベースにはコミットしない。 3. Exception(例外)をデバッグログに記録する。 4. Salesforceから管理者にException(例外)情報を記載したメールが送信される。 → 送信先:エラーとなったクラスもしくはトリガのLastModifiedBy項目で指定された開発者 5. エンドユーザのSalesforce画面にエラーメッセージが表示される。

SalesforceのExceptionステートメントの種類

Salesforce ApexのExceptionステートメントには、throwの他にException(例外)に対応するtry、catch、finallyというステートメントがあります。Exceptionステートメントの種類と機能について説明します。

Exceptionステートメントのthrowステートメント

throwステートメントは例外オブジェクトを指定して、特定のエラーに関する情報を提供することでException(例外)を生成します。生成されたException(例外)を使用してエラーの発生を通知することができます。throwステートメントの構文を紹介します。
throw exceptionObject; 

Exceptionステートメントのtry、catch、finallyステートメント

throwで生成したException(例外)に対応するtry、catch、finallyステートメントが用意されています。これらの組み合わせにより、発生したException(例外)から復旧できます。

tryステートメント

tryステートメントは、Exception(例外)が発生する可能性をもつコードのブロックを識別します。 1つのtryステートメントに対して1つ以上のcatch ステートメントを関連づけられます。同様にfinallyステートメントも関連づけられますが、finallyステートメントは1つまでに限られます。tryブロックを使用する場合は、catchブロックとfinally ブロックのいずれか1つが必要です。

catchステートメント

catchステートメントは、指定された種類のException(例外)を処理できるコードのブロックを識別します。 catchステートメントには一意の例外種別を指定する必要があります。また、1つのcatchブロックで特定の例外種別がキャッチされると、その他に該当するcatchブロックがあったとしても実行されません。

finallyステートメント

finallyステートメントは、実行が保証されるコードのブロックの識別とクリーンアップを行います。 finallyステートメントはException(例外)の発生や種別と関係なく、常に実行されるため、エラー処理だけでなく、リソースの解放などのクリーンアップコードとしても活用できます。

try、catch、finallyステートメントを使用したサンプル

以下がtry、catch、finallyステートメントを使用したサンプルです。
 try {
  // Try block
 code_block
} catch (exceptionType variableName) {
  // Initial catch block.
  // At least the catch block or the finally block must be present.
 code_block
} catch (Exception e) {
  // Optional additional catch statement for other exception types.
  // Note that the general exception type, 'Exception',
  // must be the last catch block when it is used.
 code_block
} finally {
  // Finally block.
  // At least the catch block or the finally block must be present.
 code_block
}

Salesforceの例外処理、throwなどのExceptionステートメントを理解する

SalesforceのApexの例外処理を実行する、throwなどのExceptionステートメントについて説明しました。 Exceptionステートメントでは、throwによって生成した例外から、正常なコード実行の妨げとなるエラーなどのイベントに対処できます。 Exception(例外)の生成と復旧に使用できる、Exceptionステートメントについて理解しましょう。]]>

この記事の監修者・著者

株式会社オープンアップITエンジニア
株式会社オープンアップITエンジニアAWSパートナー/Salesforce認定コンサルティングパートナー 認定企業
ITエンジニア派遣サービス事業を行っています。AWSやSalesforceなど専門領域に特化したITエンジニアが4,715名在籍し、常時100名以上のITエンジニアの即日派遣が可能です。

・2021年:AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
・2022年3月:人材サービス型 AWSパートナー認定
・AWS認定資格保有者数1,154名(2024年6月現在)
・Salesforce認定コンサルティングパートナー
・Salesforce認定資格者276名在籍(2024年5月現在)
・LPIC+CCNA 認定資格者:472 名(2024年6月時点)
ITエンジニアの派遣を利用したい企業様へ
ITエンジニアを派遣で採用したい企業様へ
  • 求人・転職サイトや自社採用サイトを使っているが、自社に合ったITエンジニアが応募してこない…
  • すぐに採用したいが、応募がぜんぜん集まらない
こんな悩みをお持ちの採用・人事担当者の方は、
オープンアップITエンジニアをご検討ください!

当社のITエンジニア派遣サービスは

  • 派遣スピードが速い!(最短即日)
  • 4,500名のエンジニアから貴社にマッチした人材を派遣
  • 正社員雇用も可能

こんな特長があり、貴社の事業やプロジェクトに合った最適なITエンジニアを派遣可能です。
まずは下記ボタンから無料でご相談ください。

無料相談のお申し込みはこちら
IT・技術関連の記事一覧へ

カテゴリから記事を探す

すべての記事一覧へ