以下のプログラムには、題意を明確にするためにあえて無意味な変数名を使用しています。

また、本来、Javaではクラスは通常1ファイルに1つずつ書きますが、演習用に便宜的に複数のクラスを1つのファイルに書いていることがあります。

1.プリントスタックトレースの解読

以下のソースコードを実行してエラーのプリントスタックトレースを読み、例外発生時にどこを見れば素早くエラーのあるソースコードにたどり着けるかを答えなさい。

package chap12;

public class Q01 {

    public static void main(String[] args) {
        String str = "Java";
        try {
            System.out.print("J");
            Integer.parseInt(str);
            System.out.print("A");
        } catch (NumberFormatException e) {
            System.out.print("V");
            e.printStackTrace();
        }
        System.out.println("a");
    }
}

2.try...catch...finally 文

以下のソースコードを実行したとき何が出力されるかを答えなさい。

package p13;

class ExceptionTest1 {

    public void func(int i, int j) {
        try {
            System.out.print("J");
            int k = i / j;
            System.out.print("A");
        } catch (ArithmeticException e) {
            System.out.print("V");
        } finally {
            System.out.print("a");
        }
    }
}

public class Q02 {

    public static void main(String[] args) {
        ExceptionTest1 a = new ExceptionTest1();
        a.func(1, 2);
    }
}

3.ArithmeticException

上記と同じパッケージに以下のJavaファイルを追加して実行したとき何が出力されるかを答えなさい。

package chap12;

public class Q03 {

    public static void main(String[] args) {
        ExceptionTest1 a = new ExceptionTest1();
        a.func(1, 0);
    }
}

4.NullPointerException

以下のソースコードを実行したとき何が出力されるかを答えなさい。

package chap12;

public class Q04 {

    public static void main(String[] args) {
        int[] array = null;
        System.out.print("J");
        try {
            array[0] = 0;
            System.out.print("A");
        } catch (ArithmeticException e) {
            System.out.print("V");
        } catch (NullPointerException e) {
            System.out.println("a");
        }
    }
}

5.NumberFormatException 

以下のソースコードを実行したとき何が出力されるかを答えなさい。

package chap12;

public class Q05 {

    public static void main(String[] args) {
        String str = "Java";
        try {
            System.out.print("J");
            Integer.parseInt(str);
            System.out.print("A");
        } catch (NumberFormatException e) {
            System.out.print("V");
        }
        System.out.println("a");
    }
}

 

10.オリジナル問題作成

将来の後輩のために良い問題が出来たら教えてください。
 

以上。

JavaSEの問題集トップページに戻る