桃太郎2017/4/302019/1/28こんにちは!フリーランスの桃太郎です。Javaにはエラーが発生した際に、適切な処理を行うための構文としてtry-catch-finallyがあります。・finallyの注意点などの応用的な使い方に関しても解説していきます。まとめtry-catchとはjavaのプログラミングにおいて、エラーは大きく2つの種類に分けられます。一つは、javaの書き方自体を誤って起こる文法エラー。一つが、実際にプログラムが実行された時に初めて起こる実行時エラーです。実行時エラーが起こるとプログラムは後続の処理が行われず、突然止まってしまい、そのシステムを利用しているユーザからすると、何が起きたのかわからない状態となります。そこで、そのような実行時エラーが起きた場合に、適切な処理をプログラムに指示するための構文がtry-catch文となります。会員登録して利用するシステムにおいて、ユーザがログインする場面を想定します。その際、プログラム内では、ログインしようとするユーザがすでに会員なのかどうか判断するためにデータベースにアクセスし情報を確認します。データベースへのアクセス処理は予期せぬエラーが発生する可能性があります。そのような時は以下のようにtry-catch文を使用します。System.out.println("DBアクセスがエラーが発生し、会員情報を正常に取得できませんでした。");}try文の中で、正常に処理が行われずDBアクセスエラーが発生した場合、catch文に処理が移動します。そのcatch文の中にシステムの要件に沿った適切な処理(ここではエラー原因についてメッセージを出力)を実装します。finallyとはfinallyの使い方エラーが発生するかしないかに関わらず、確実に行いたい処理が存在する場合があります。今回の例でいいますと、データベースへ接続するために、データベースへの通信を開始(open)しています。データが正常に取得できた場合でも、エラーが発生し取得できなかった場合でも、データベースへの通信は閉じる(close)必要があります。そのような時に使用するのがfinallyです。次のプログラムでは、tryブロックの処理が正常に行われた場合でも、例外が発生した場合でも、finallyブロックの処理が行われるためクローズ処理が確実に行われます。System.out.println("DBアクセスがエラーが発生し、会員情報を正常に取得できませんでした。クローズ処理}finallyの注意点try-catch-finally文の注意点として、処理の中にreturnを含む場合の処理順序を正しく理解しておく必要があります。System.out.println("DBアクセスがエラーが発生し、会員情報を正常に取得できませんでした。System.out.println("クローズ処理を行いました");}エラー発生時の実行結果DBアクセスがエラーが発生し、会員情報を正常に取得できませんでした。トップ画面に戻るcatch文にはエラーメッセージ出力後、トップ画面に戻るreturn処理が実装されています。finallyが実装されている場合にはfinally内のクローズ処理が先に実行され、その後にcatch内のreturn処理が行われます。2019年6月8日まとめこの記事ではtry-catch-finally構文について解説しました。適切なエラー処理を行いたい場合はtry-catch-finally構文が必須となりますのでぜひ覚えてください。try-catch-finally構文について忘れてしまったらこの記事を確認してくださいね!TweetPocket無料でSEからWebエンジニアへ転職しませんか?侍エンジニア塾では、完全未経験の方から現在SEだけどプログラミングはやっていないという経験者まで、幅広い方々の人生を好転させるプログラミング指導を行ってきました。SEの方とお話していくなかで、システムエンジニアという職業だけどコードが書けない事務作業が多くスキルがないため将来が不安スクールに通うと完全未経験者と同じスタートになるからレベルが合わないという、すでに知識があるSEならではのお悩みがあることに気づきました。弊社では、マンツーマンでレッスンを行いますので、現在お持ちの知識レベルからカリキュラムを作成いたします。こちらの転職コースは無料で受講を始められて転職成功でそのまま卒業できるというとてもお得なコースとなっています。知識のあるSEといっても転職は年齢が若いほど受かりやすいため、まずは無料体験レッスンで今の現状や理想の働き方について一緒に考えていきましょう。桃太郎20代は役者、30代はエンジニア、そして40代を迎えた現在、Webライターとして活動しながら、3人の息子たちの家庭教育、アンチエイジングなどにも力を入れて日々ノマドライフを楽しんでいます。