LoginSignup
1
2

More than 3 years have passed since last update.

【salesforce】例外処理をうまく使ってエラーの特定を早く行う

Last updated at Posted at 2019-09-23

例外処理

おさらいですが、

例外は、コード実行の正常な流れを中断させるエラーやその他のイベントが発生したことを通知します。スロー これは例外の生成に使用され、試してみる、キャッチ、および 最後に これは例外から適切に復旧するために使用されます。

Apexでは例外をこのように扱っています。
この例外処理をうまく使ってエラーが起きても素早く対処し、
どこで何が起こっているのかの特定を行います。

下記のようなコードがあったとします。

sample.apex
Id hoge = 'a';

この場合Id型に対して代入しているのは文字列になり、単純にシステムエラーとして返されてしまいます。
このように、たった1行のコードであればすぐに見つけられますが、何百行となってきたときにどこで入力の漏れがあったのかとか、
変数を探したりなんだり。。。。時間がかかってしまいますよね。

そこで例外処理を使って箇所を特定し、エラーがなぜ起こったのかを把握して対応します。

sample.apex
try {
  Id hoge = 'a';
} catch ( Exception e ) {
  system.debug(e.getMessage());
}

このようにコードを変えてみます。
どのような結果が返ってくるでしょうか。

スクリーンショット 2019-09-23 9.18.16.png

想定通りですね。

よくやる形としては、これをメッセージとしてVFに出力したりします。
これで何が起こっているかは判定できましたが、
どこで起こっているのかも知りたいですよね。

そのために先ほどのコードにもう少し追加をします。

sample.apex
try {
  Id hoge = 'a';
} catch ( Exception e ) {
  system.debug(e.getMessage());
  system.debug(e.getLineNumber());
}

system.debug(e.getLineNumber());を追加しました。
結果は、

スクリーンショット 2019-09-23 9.20.41.png

行数も出てきましたね。

これを使えば大体のエラー個所が特定しやすくなるのではないでしょうか。

参照

profile

生まれも育ちも大阪の浪速中の浪速っ子が30才未経験からITエンジニアとして生きるブログもやってます。
よかったらみてください:muscle_tone2:

PVアクセスランキング にほんブログ村

1
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
2