エラーメッセージを読み取る

Javaに関わらず,プログラミングにおいては,「コーディング,コンパイル,実行」という一連の作業において,プログラムのエラーというもに必ず遭遇 するでしょう.その際エラーメッセージなどが出てきますが,初心者にとっては,これがまた意味不明であることがしばしばです.逆に言うと,このエラーメッ セージを理解することで,効率よくプログラミングが行えるということでもあります.本講義では,初心者が必ずつまづくJavaの典型的なエラーについてと りあげ,その対応策を紹介します.なお,エラーメッセージの表現は,Netbeansを想定しています.

症状)シンボルが見つかりません

test2.java [22:1] シンボルを解決できません。
シンボル: クラス List 
場所 : test2 の クラス
List aa = new List();

シンボルを解決できない..?意味のわからん日本語ですよね.これは,「解釈できない」「定義できない」と読み取ってください.これはつまり,定義 されていないという意味です.

上記の例では,「Listというクラスを使ってるけど,定義されてないからコンパイルできません」っていうことですね.

解決策)

import によりクラスを定義する.

import java.util.List;

症状)例外~は報告されません。スローするにはキャッチまたは、スロー宣言をしなければなりません

test2.java [24:1] 例外 java.net.MalformedURLException は報告されません。スローするにはキャッチまたは、スロー宣言をしなければなりません。
URL url = new URL("http://www.yahoo.com");
^
エラー 1 個
コンパイルエラー test2.

報告する?そんなのJavaにあったっけ?わかりにくいですね...ただ,この場合それに続く文を読めばヒントが見えてきます.「スローするには キャッチまたは、スロー宣言...」...そうです.Try,Catch...の例外処理に問題があるようです.

つまり,「例外処理をしてないですよ」って言ってるわけです.Javaは,きちんと例外処理をしないとコンパイルできないような枠組みになっている のです.じゃあ,どんな例外が投げられるんだろう?これもエラーをみればすぐにわかります.

「 ~は報告されません...」の部分に答えが書いてあります.

上の例では,URLクラスを呼んでるんだけど,その際に,java.net.MalformedURLExceptionをTry,Catchして ないよ..と教えてくれてるのです.

解決策)

指定されたExceptionをtry catch で受け取る.

try{
URL url = new URL("http://www.yahoo.com");
}catch(java.net.MalformedURLException e){
System.out.println(e.getMessage());
}