supahot:
私は動物の名前を出力する方法を得ました。私は今、IDが与えられたものの一つではない場合、プリントアウトされるエラーを必要としています。それがどのように動作しますか?
class Methode {
static final int DEER = 0;
static final int BIRD = 1;
static final int COW = 2;
static final int PIG = 3;
public static void main(String[] args) {
printAnimal();
}
public static void printAnimal (int id) {
if (id == DEER) {
System.out.println("Deer");
}
else if (id == BIRD) {
System.out.println("Bird");
}
else if (id == COW) {
System.out.println("COW");
}
else if (id == PIG) {
System.out.println("Pig");
}
}
}
セバスチャンI:
エラーによって、あなたが意味する場合Exception
(そうでない場合、私はあなたが単にあなたがあなたの中でやったように「エラー」メッセージが印刷されなかった理由がわからないelse if
、あなたが拡張するカスタムクラスを作成する必要が枝を)Exception
して、新しいのそれを投げるelse
ブランチ。次に例を示します。
例外:
public class NoSuchAnimalException extends Exception {
public NoSuchAnimalException(String message) {
super(message);
}
}
テスト:
public static void printAnimal(int id) throws NoSuchAnimalException {
if (id == DEER) {
System.out.println("Deer");
} else if (id == BIRD) {
System.out.println("Bird");
} else if (id == COW) {
System.out.println("COW");
} else if (id == PIG) {
System.out.println("Pig");
} else {
throw new NoSuchAnimalException("No such animal");
}
}
public static void main(String[] args) {
try {
printAnimal(6);
} catch (NoSuchAnimalException e) {
System.out.println(e.getMessage());
}
}
例外が最後にスローされますelse
(メソッド呼び出しで提供されたIDは、以前の要件を満たしていない)とで処理されるpublic static void main()
方法。