どのように私は私のJavaコードで例外をスローしますか?

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()方法。

おすすめ

転載: http://43.154.161.224:23101/article/api/json?id=13346&siteId=1