blog

インベントリは、あなたがJavaの開発を行うそれらは例外に遭遇している必要があり、1回限りのヘルプは、あなたがすべてを取得する!

例外という用語は、プログラムが実行時にエラーをスローしたときに呼び出し元に警告を発 するメカニズムを指します。 例外には多くの種類があり、例外の種類によって意味も処理方法も異なります。 catch ブ...

Mar 13, 2020 · 3 min. read
シェア

例外をスローします:

例外とは、プログラムの実行時にエラーが発生した場合に、呼び出し元 に警告を発する仕組みのことです。例外には多くの種類があり、例外の種類によって意味や処理方法が異なります。例を示します:

public class Demo1 {
 public static void main(String[] args) {
 int[] arr = {1,2,3};
 System.out.println(arr[5]); //配列の添え字が範囲外の例外
 }
}

例外の基本的な使い方

例外をキャッチするための基本構文:

try{
	可能な例外;
} catch(例外タイプ Exception オブジェクト){
} finally {
	例外の終了
}

catchコードブロックとfinallyコードブロックの具体的な状況に応じて追加することができます。

例外が処理されない場合、プログラムは例外に遭遇した時点で終了します。

public class Demo1 {
 public static void main(String[] args) {
 int[] arr = {1,2,3};
 System.out.println("====1=====");
 System.out.println(arr[5]);
 System.out.println("====2=====");
 }
}

出力結果:arr[5]に達すると、配列の添え字が境界外である例外が発生し、プログラムが終了します。そのため、1の出力文のみが出力され、2は正常に出力されません。

例外処理にtryを使用した場合

public class Demo1 {
 public static void main(String[] args) {
 int[] arr = {1,2,3};
 try {
 System.out.println("====1=====");
 System.out.println(arr[5]);
 System.out.println("====2=====");
 } catch (ArrayIndexOutOfBoundsException e){
 e.printStackTrace(); //例外が発生したコール・スタックを出力する
 } 
 System.out.println("try catchを呼び出す");
 }
}

出力結果:

出力から、一度例外に遭遇したtryコードブロックは、実行を続行されませんが、catchコードブロック内のコードを実行するには、catchコードブロックの実行が完了すると、実行を下に続行することがわかります。

また、1 つのコードに複数の例外が存在することもあり、例外によって処理方法が異なるため、 複数の catch コードブロックをマッチさせることができます。例

public class Demo1 {
 public static void main(String[] args) {
 int[] arr = {1,2,3};
 try {
 System.out.println("====1=====");
 arr = null;
 System.out.println(arr[5]);
 System.out.println("====2=====");
 } catch (ArrayIndexOutOfBoundsException e){
 System.out.println("配列添え字の境界外例外");
 e.printStackTrace();
 } catch (NullPointerException e){
 System.out.println("ヌル・ポインタ例外");
 e.printStackTrace();
 }
 System.out.println("try catchを呼び出す");
 }
}

出力: arr= NULLなので、NULLポインタ例外はキャッチされるべきです。

コードのfinallyブロックは、最終的な終了を示します。

コードが例外を持つかどうかにかかわらず、finallyブロック内のコードは最終的に実行されなければなりません。

例外処理の流れ

tryブロックで例外が発生した場合、tryブロックは終了し、catchブロックで例外の型が一致するかチェックされます。コード・ブロックがメソッドの終了前に実行されます。高レベルの呼び出し元が一致する例外タイプを持っていない場合、例外は階層上に渡されます。

例外のスロー

Javaでは、例外を投げるいくつかの組み込みクラスに加えて、手動で例外を投げることもできます。

public class Demo1 {
 public static void main(String[] args) {
 int x = func(2,0);
 System.out.println(x);
 }
 public static int func(int x,int y){
 if (y == 0){
 throw new ArithmeticException("0による除算例外を投げる");
 }
 return x/y;
 }
}

出力結果:

Read next

最も長い公開接頭辞

文字列の配列から、最長の共通接頭辞を見つける関数を書きます。共通の接頭辞がない場合は、空の文字列を返します。 配列をソートします。ソートは文字の並び順に従って行い、配列の最初の要素と最後の要素の文字を前から順に比較します。

Mar 13, 2020 · 2 min read