LimitExceptioncannot be caught in atry-catchblock because it is thrown when governor limits are exceeded, and Salesforce does not allow further processing in such cases. Other exceptions, such as custom exceptions,NoAccessException, orCalloutException, can be caught and handled. Exceptions in Apex
最新のコメント (最新のコメントはトップにあります。)
正解:LimitException
正解は B です。
(※選択肢の「リンク例外」は、英語の "Limit Exception"(制限例外) の誤植・誤訳である可能性が極めて高いです。Salesforceの試験において「キャッチできない例外」といえば、System.LimitException が正解となります。)
解説
B. 制限例外 (System.LimitException) これが キャッチできない(Uncatchable) 唯一の例外タイプです。 ガバナ制限(SOQL発行回数100回、DML150回、CPU時間10秒など)を超過した際に発生します。 この例外が発生すると、Salesforceは直ちにプロセスを強制終了(Kill)し、トランザクション全体をロールバックします。try-catch ブロックで囲んでいても、この例外は捕捉できず、処理は止まります。
キャッチできない理由: ガバナ制限は、マルチテナント環境(リソース共有)を守るための「絶対的なルール」だからです。もしキャッチできてしまうと、「制限を超えても無理やり処理を続ける」ことが可能になってしまい、サーバー全体に悪影響を与える恐れがあるためです。
他の選択肢(すべてキャッチ可能)
以下の例外はすべて try-catch ブロックで捕捉し、エラー処理を行うことができます。
A. カスタム例外 (Custom Exception): 開発者が自分で作成した例外クラスです。当然キャッチできます。
C. アクセス例外なし (System.NoAccessException): (※「NoAccessException」の直訳と思われます) ログイン失敗や権限不足などで発生しますが、キャッチ可能です。
D. セルアウト例外 (System.CalloutException): (※「Callout Exception」の誤訳と思われます) Webサービスへのコールアウトが失敗した際などに発生しますが、キャッチ可能です。
💡 試験対策
「キャッチできない例外は?」 と聞かれたら、迷わず 「LimitException (ガバナ制限例外)」 を選んでください。
正解:LimitException