048-例外処理-複雑な例外処理 【新人エンジニアが最初に覚えたい100のJava文法】
ユーチューブ動画
複雑な例外処理について解説します。
ソースコード
try{
FileReader fr = new FileReader(FILE_PATH);
BufferedReader br = new BufferedReader(fr);
br.readLine();
br.close();
}catch(FileNotFoundException e){
System.out.println("File Not Found.");
}catch(IOException e){
System.out.println("IOException.");
}catch(Exception e){
e.printStackTrace();
}解説
複雑な例外処理について解説します。
以前の動画で例外処理はtry-catchブロックで実現できることを説明しました。
発生する例外は一つとは限りません。
複数の例外にはどのように対処するのでしょうか?
サンプルコードで確認しましょう。
複数の例外が発生する場合は、catchブロックを複数記述することができます。
Catchブロックの書き方は同じです。発生する例外の種類をかっこの中に記述し、例外が発生したときの処理をcatchブロックに記述します。
どんな順番でcatchブロックを書いていいのかというとそうではありません。
この例外をAPIドキュメントで確認してみましょう。
最初に記述した、FileNotFoundExceptionは、指定されたパスで示されるファイルが開けなかった場合に発生する例外です。
ご覧のような継承関係になっています。
このうち、java.lana.Exceptionクラスが重要なクラスです。
このクラスが例外の大本のクラスといってよいのですが、このクラスをcatchブロックで先に記述してしまうと、すべての例外をキャッチしてしまうため、他の例外に行かなくなってしまいます。
ご覧のように、大本のクラスを先に書くトコンパイルエラーになります。
すでに Exception の catch ブロックによって処理されていますというエラーになります。
catchブロックを複数記述することができますが、必ずサブクラス側から記述することを覚えておきましょう。
以上、複雑な例外処理について解説しました。
このサンプルコードをJavaタッチタイプゲームとして遊ぶことができます。
投稿者プロフィール
- 代表取締役
-
セイ・コンサルティング・グループ株式会社代表取締役。
岐阜県出身。
2000年創業、2004年会社設立。
IT企業向け人材育成研修歴業界歴20年以上。
すべての無駄を省いた費用対効果の高い「筋肉質」な研修を提供します!
この記事に間違い等ありましたらぜひお知らせください。
学生時代は趣味と実益を兼ねてリゾートバイトにいそしむ。長野県白馬村に始まり、志賀高原でのスキーインストラクター、沖縄石垣島、北海道トマム。高じてオーストラリアのゴールドコーストでツアーガイドなど。現在は野菜作りにはまっている。
最新の投稿
山崎講師2025年12月30日【Python】連立方程式を一瞬で解く!掃き出し法の仕組みと実装をわかりやすく解説
山崎講師2025年12月30日【新人エンジニア向け】「解なし」の正体を見破る。行列式と「面積」の意外な関係
山崎講師2025年12月30日【新人エンジニア向け】連立方程式をプログラムのように解く!「逆行列」と「掃き出し法」
山崎講師2025年12月30日【新人エンジニア向け】暗記は不要!「行列の掛け算」のルールを5分でマスターする