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 回答