例外処理
おさらいですが、
例外は、コード実行の正常な流れを中断させるエラーやその他のイベントが発生したことを通知します。スロー これは例外の生成に使用され、試してみる、キャッチ、および 最後に これは例外から適切に復旧するために使用されます。
Apexでは例外をこのように扱っています。
この例外処理をうまく使ってエラーが起きても素早く対処し、
どこで何が起こっているのかの特定を行います。
下記のようなコードがあったとします。
Id hoge = 'a';
この場合Id型に対して代入しているのは文字列になり、単純にシステムエラーとして返されてしまいます。
このように、たった1行のコードであればすぐに見つけられますが、何百行となってきたときにどこで入力の漏れがあったのかとか、
変数を探したりなんだり。。。。時間がかかってしまいますよね。
そこで例外処理を使って箇所を特定し、エラーがなぜ起こったのかを把握して対応します。
try {
Id hoge = 'a';
} catch ( Exception e ) {
system.debug(e.getMessage());
}
このようにコードを変えてみます。
どのような結果が返ってくるでしょうか。
想定通りですね。
よくやる形としては、これをメッセージとしてVFに出力したりします。
これで何が起こっているかは判定できましたが、
どこで起こっているのかも知りたいですよね。
そのために先ほどのコードにもう少し追加をします。
try {
Id hoge = 'a';
} catch ( Exception e ) {
system.debug(e.getMessage());
system.debug(e.getLineNumber());
}
system.debug(e.getLineNumber());を追加しました。
結果は、
行数も出てきましたね。
これを使えば大体のエラー個所が特定しやすくなるのではないでしょうか。
参照
profile
生まれも育ちも大阪の浪速中の浪速っ子が30才未経験からITエンジニアとして生きるブログもやってます。
よかったらみてください