1

さて、私は過去1日かそこらの間、これを理解しようとしてきました。私の宿題では、チェックされていない例外とチェックされた例外の両方を作成する必要があります。私が得ると信じているチェックされた例外は、基本的にコンパイルする前に処理する必要があります(try&catchまたはそれを呼び出す次のものにスローします。チェックされていない例外については、カスタム例外がどのように機能するかわかりません。実行時にキャッチされ、必ずしもスローしたり、try & catch で囲んだりする必要はありませんが、それらがカスタムである場合、IDE などは何を探すべきかをどのように認識しますか? 例: ユーザーがポケモンを追加すると、カスタム Unchecked ファイルの 1 つがトリガーされるはずですが、パーティーは満員ですが、それが必要であることを IDE に伝えるにはどうすればよいでしょうか? 私の例外ファイルは次のようになります。

public class PartyIsFullException extends RuntimeException {

    public PartyIsFullException() {
        super();
    }

    public PartyIsFullException(String message) {
        super(message);
    }
}

そして、このメソッドでそれを実装したいのですが、その方法はわかりません。ユーザーがそれらを期待していないため、それらをキャッチしようとしないため、それらをスローできないことに気付きました。

public void addToParty(String name) throws PartyIsFullException {
        boolean exists = false;
        for (int i = 0; i < 152; i++) {
            exists = (name.equals(pokedex[i]));
        }
        if (exists) {
            throw new PokemonAlreadyExistsException();
        } else {
            if (partyPos < 6) {
            party[partyPos] = name;
            partyPos++;
            } else {
                throw new PartyIsFullException();
            }
        }
    }
4

2 に答える 2

0

特定のカスタム未チェック例外が特定のメソッドからスローされる可能性があるかどうかはわかりませんが、それでもキャッチできます (またはスーパークラスExceptionです)。Java によって提供されるカスタム例外を使用すると、例外的なケースに固有の有用な詳細を追加できます (つまり、ログを読みやすくするために、例外名は意味のあるものにする必要があります)。

カスタム (チェックされていない) 例外の作成とその内容は、特定のニーズに合わせて調整することもできます。たとえばPartyIsFullException、コンストラクターはPartyオブジェクトを取得し、その状態を文字列にフォーマットできます。

チェックされていない例外の作成/提示を容易にする必要がない場合はRuntimeException、説明的なメッセージを提供すると仮定しても問題ありません。

于 2015-03-21T00:38:33.393 に答える