マンガで分かる Java入門講座

第3章 プログラミングの基本
3-3. エラー

プログラムが動かない「エラー」について、実行前と実行中の両方について紹介します。

● コンパイルエラーと警告

 「Eclipse」でプログラムを書いていると、ソースコードの左側に「×」や「!」といった記号が表示されることがあります。これらは、エラーや警告を表す記号です。この2つの記号について説明します。

説明)実行前のエラー表示と警告表示
×
 エラー表示
 警告表示

 「×」は、エラーを表す記号です。この記号が表示されている場合は、プログラムに問題があります。問題の多くは、プログラムの書き方が間違っています。

 「!」は、警告を表す記号です。この記号が表示される場合は、プログラムを非推奨の書き方で書いています。そのままではエラーとは見なされませんが、可能ならば修正した方がよいです。

 どちらの記号の場合でも、この記号にマウスを載せると、エラーや警告の詳細が表示されます。このメッセージはF2を押せば選択できるようになります。

 詳細は、英語で表示される場合もあります(日本語化に対応していない内容の場合)。その際、意味が分からなければ、丸ごとコピペして検索エンジンで調べるとよいです。解説しているサイトを見つけることができます。

 ソースコードにエラーが表示されている場合は指示に従い、まずはエラーがなくなるようにしなければなりません。そうしなければ、実行したりJavaアプリケーションを出力したりすることはできません。


● 実行時エラー

 作成したアプリケーションを実行すると、コンソールにエラーが表示されることがあります。

説明)実行後のエラー表示
Exception in thread "main" java.lang.ArithmeticException: / by zero
	at sample.Sample.test(Sample.java:9)
	at sample.Sample.main(Sample.java:5)

 このエラー表示は、最初の行がエラーの原因で、それ以降の行は発生箇所です。

 以下、サンプルを元にして解説をします。

ソースコード)エラーの起きるコード src/sample/Sample.java
package sample;

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

    static void test() {
        int i = 1 / 0;
    }
}

出力)実行時エラー
Exception in thread "main" java.lang.ArithmeticException: / by zero
	at sample.Sample.test(Sample.java:9)
	at sample.Sample.main(Sample.java:5)

 上記の例では、最初の行の「Exception in thread "main" java.lang.ArithmeticException: / by zero」がエラーの原因になります。

 2行目の「at sample.error.test(error.java:9)」は、エラーが起きた場所です。

 3行目の「at sample.error.main(error.java:5)」は、「sample.error.test」を呼び出した場所になります。

 長いプログラムでは、もっと多くの行が表示されます。その場合はいずれも、1つ前の行を呼び出している場所になります。

 また、このエラー行「error.java:9」「error.java:5」をクリックすれば、Webページのリンクのように、プログラム内のその場所にジャンプできます。このリンク先を確かめることで、エラーの発生理由を調査できます。


この講座のマンガ部分は「箱人形マンガ(Box Comic) 」で作成しています。
作成:2013/05/18  更新:2015/08/08  [Permalink]