2013-01-22 27 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

相關問題