2

ミニプロジェクトとたくさんのクラスがあります。フィールドの例外を作成しましたが、機能しません

public C(..., int yearX, ...) throws InitException {
        if (year == 2000) {
            ...
            year = yearX;
            ...
        } else
            throw new InitAnneeEC();
    }
4

1 に答える 1

2

あなたの問題は、比較するコンストラクターにありますyearが、最初に値を設定しないため、常に例外が発生します。

    public C(..., int yearX, ...) throws InitException {
        if (year == 2000) {
            ...
            year = yearX;
            ...
        } else
            throw new InitAnneeEC();
    }

実際に実行するif (year == 2000)と、デフォルト値の 0 が使用されるため、比較は常に false になります。anneeEC値で値を設定したいと思いますanneeE

次のようにコードを変更してみてください。

    public C(..., int yearX, ...) throws InitException {
        year = yearX;
        if (year == 2008) {
            ...
        } else
            throw new InitException();
    }
于 2013-03-13T02:38:11.373 に答える