わざとエラーを起こしてエラーに強くなる 【Javaのサンプルコード】

Print Friendly, PDF & Email

プログラミング初心者のあるあるネタで、極端にエラーメッセージを恐れる、というのがあります。

本来、エラーメッセージは間違いを知らせてくれているものなので、ありがたいのですが、

わかりにくい英語で書かれているものですから、避けたくなる気持ちも分からないではありません。

よく分からないエラーメッセージが出たときに一番良い方法は、そのエラーメッセージをまるごとグーグル検索にかけることです。

必ずと言っていいほど、誰かが説明してくれています。

自分からあえてエラーを起こす、というのも良い方法です。

ここではいくつかご紹介してみます。

1.ArrayIndexOutOfBoundsException

配列の存在しない要素を指す添字を使った時に発生するエラーです。

プログラム例

public class ArrayIndexOutOfBoundsExceptionTest {
    public static void main(String[] args) {
        int[] a = new int[3];
        a[3] = 10;
    }
}

 

2.NullPointerException

参照型の変数に値が入っておらず、メモリ上のアドレスを指していない時(オブジェクトがnullの時)

その参照を使ってインスタンスにアクセスしようとしたときに発生するエラー。

public class NullPointerExceptionTest {
    public static void main(String[] args) {
        String a = null;
        System.out.println(a.length());
    }
}

 

3.NumberFormatException

文字列の値を数値に変換(キャスト)しようとした場合に、数値に変換できない文字列だった場合に発生するエラー。

public class NumberFormatExceptionTest {
    public static void main(String[] args) {
        int number ;
        String str = "abc";
        
        number = Integer.parseInt(str);
    }
}

 

4.ArithmeticException

不正な算術処理が行われた場合、例えば“ゼロ除算”の場合などに発生するエラー。

public class ArithmeticExceptionTest {

    public static void main(String[] args) {
        int a = 10;
        int b = 0;
        
        int c = a/b;
        System.out.println(c);
    }
}

 

5.StackOverflowError

スタック領域を使い果たした時に出るエラー。

public class StackOverflowErrorTest {

    public static void main(String[] args) {
        main(args);
    }
}

上のプログラムでは再帰的に自分自身を呼び出しています。