こんにちは、にいるです。
Savepoオリジナルの開発初心者向けプログラム「Sink it」です。
今回は、第20回目の「例外処理」です。
この記事は「20.例外処理を使ってみよう」の解説と解答です。
1.例外処理とは
例外処理とは、作成したプログラムが正常通りに動いていない場合に発生したエラーやイベントを検知する機能です。
構文はtry、catch、finallyのステートメントで構成されています。
基本的な構文です。
1 2 3 4 5 6 7 |
try { // 例外が発生する可能性のある処理(DMLなど)を記載します。 } catch(Exception e) { // 例外を検知した時に実行する処理を記載します。 } finally { // ここに記載する処理は、例外の発生有無や発生した例外種別に関係なく、常に実行されます。 } |
構文上は、
- try~catch
- try~finally
になります。
catch(try~catch~catchやtry~catch~catch~finally)は複数記載できます。
この場合、最初にcatchした例外箇所だけ処理が実行されその後のcatchはスルーされfinallyステートメントに入ります。
2.解答・解説
解答
解答です。
1 2 3 4 5 6 7 |
try{ Account a = new Account( Name = ''); Insert a; } catch (DmlException e){ System.debug('取引先の名前が未入力です。' + e.getMessage()); } |
■デバッグ
解説
元々、取引先名は入力規則(Salesforceの仕様)で必須になっているため、今回は例題として使用しました。
tryのなかでDML操作で取引先をInsertしていますが、名前がないのでcatchされます。
catchしてcatch内のコードが実行され、デバッグでテキストを表示しています。
これを応用してVisualforceページにテキストを渡すことでエラー原因をユーザに通知できます。
また、下記のように名前を指定すれば、問題なくInsertされます。
1 2 3 4 5 6 7 |
try{ Account a = new Account( Name = 'asd'); Insert a; } catch (DmlException e){ System.debug('取引先の名前が未入力です。' + e.getMessage()); } |
■デバッグ
3.まとめ
いかがでしたでしょうか。
例外処理は分岐がある場合には必ず書いておかないといけません。
でないと、ユーザから「画面にエラーが出ていて業務がすすみません!」という声がかかります笑
聞きたくないですね笑
皆さんもぜひ色々と試してみてください。
他にも色々と標準機能やSalesforce機能について紹介していますので、ご覧ください。
ではでは!
コメント