我想知道是否有可能编写一个方法来引发异常并让另一个方法捕获这些异常。

例如,

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,表示没有圆,无论其他调用的结果如何。

最佳答案

对的,这是可能的。在方法声明中,可以添加throws子句,该子句指示您的方法可能会引发异常。

在您的情况下,您应该像下面这样修改方法声明:

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


您应注意,例外情况应用于...例外情况。使用它们进行简单的错误处理是非常常规的,并且给类的用户增加了不必要的负担。对于您的情况,您可能想添加一个boolean hasCircleAtLocation ()方法,如果提供的位置处有一个圆圈,该方法将返回true

09-27 00:26
查看更多