2013-01-22 26 views
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,表明没有圈,不管对方通话的结果。

+0

你面临什么问题?你有没有得到任何错误? –

回答

8

是的,这是可能的。在你的方法声明中,你可以添加一个throws子句,这表明你的方法可能会抛出异常。

在你的情况,你应该修改你的方法声明是这样的:

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

你应该注意到异常应该用于...特殊情况。使用它们进行简单的错误处理非常传统,并且会给您的类的用户带来不必要的负担。对于您的情况,您可能需要添加boolean hasCircleAtLocation()方法,如果在提供的位置有一个圆圈,则该方法将返回true

相关问题