0

例外をスローするメソッドを作成し、別のメソッドでこれらの例外をキャッチできるかどうか疑問に思っていました。

例えば、

public static void checkCircle() {
    try {
        checkPixel(a);
        checkPixel(b);
        checkPixel(c);
    } catch (MyException e) {
        System.out.println("not circle");
    } 

    private static void checkPixel(anything) {
        if (img.getRGB(xValue, yValue) != pOrigColour) {
            throw new MyException();
        }
    }

    class MyException extends Exception {
        public MyException() {
        }

        public MyException(String msg) {
            super(msg);
        }
    }

他の呼び出しの結果に関係なく、円がないことを示すcheckPixelをスローするメソッドが必要です。MyException

4

1 に答える 1

8

はい、可能です。メソッド宣言ではthrows、メソッドが例外をスローする可能性があることを示す句を追加できます。

あなたの場合、メソッド宣言を次のように変更する必要があります。

private static void checkPixel(anything) throws MyException {
    // ...
}

例外は...例外的な状況に使用する必要があることに注意してください。それらを単純なエラー処理に使用するのは非常に型破りであり、クラスのユーザーに不必要な負担を追加します。あなたの場合、指定された場所に円がある場合にboolean hasCircleAtLocation ()返されるメソッドを追加することができます。true

于 2013-01-22T19:53:54.043 に答える