我想知道是否可以编写一个抛出异常的方法,并让另一个方法捕获这些异常。
例如,
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
,表示没有圆圈,无论其他来电的结果如何。
答案 0 :(得分:8)
是的,有可能。在方法声明中,您可以添加throws
子句,该子句指示您的方法可能会抛出异常。
在您的情况下,您应该像这样修改方法声明:
private static void checkPixel(anything) throws MyException {
// ...
}
您应该注意,异常应该用于......例外情况。使用它们进行简单的错误处理是非常不寻常的,并且会给类的用户增加不必要的负担。在您的情况下,如果在提供的位置有一个圆圈,您可能需要添加boolean hasCircleAtLocation ()
方法,该方法将返回true
。