この記事の目次
Salesforceにおけるthrowなどの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ステートメントの種類

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ステートメントを理解する

この記事の監修者・著者

-
未経験からITエンジニアへのキャリアチェンジを支援するサイト「キャリアチェンジアカデミー」を運営。これまで4500人以上のITエンジニアを未経験から育成・排出してきました。
・AWS、salesforce、LPICの合計認定資格取得件数:2100以上(2023年6月時点)
・AWS Japan Certification Award 2020 ライジングスター of the Year 受賞
最新の投稿
- 2023年12月6日キャリア・転職システムエンジニアへのキャリアチェンジで必要な資格は?
- 2023年12月6日キャリア・転職キャリアチェンジでエージェントを活用するメリット
- 2023年12月6日キャリア・転職プログラマーへのキャリアチェンジに必要な資格は?
- 2023年12月6日キャリア・転職サーバーエンジニアへのキャリアチェンジで必要な資格は?