2013-01-22 3 views
0

예외를 throw하고 다른 예외를 catch하는 메서드를 작성할 수 있는지 궁금합니다. 예를 들어 예외를 던지고 다른 곳에서 잡는 중

,

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); 
     } 
    } 

것은 내가 상관없이 다른 호출의 결과, 더 원이 없음을 나타내는하는 MyException을 던져 checkPixel 방법으로 할 수 있습니다.

+0

어떤 문제가 있습니까? 어떤 오류가 있었습니까? –

답변

8

예, 가능합니다. 메서드 선언에서 메서드가 예외를 throw 할 수 있음을 나타내는 throws 절을 추가 할 수 있습니다. 귀하의 경우에는

, 당신은이처럼 메소드 선언을 수정해야합니다 : 당신은 예외가 ... 예외적 인 상황에 사용되어야한다는 것을주의해야한다

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

. 간단한 오류 처리를 위해이 API를 사용하면 매우 비 재래 적이며 클래스 사용자에게 불필요한 부담이 가중됩니다. 귀하의 경우 제공된 위치에 서클이있는 경우 true을 반환하는 boolean hasCircleAtLocation() 메서드를 추가 할 수 있습니다.

관련 문제