2013-02-13 3 views
1

내 메뉴 배열에 이름으로 찾을 수있는 경우 Recipe 개체를 반환하는이 메서드가 있습니다. 그것을 찾을 수 나던 경우, 나는 그것을 던지기 전에 그들 모두를 확인해야합니까 방법은 첫 번째 메뉴 자리를 확인 현재의 조건 하에서변수를 반환하기 전에 배열의 모든 위치 확인

public static Recipe getRecipe(String recipeName){ 

    try{ 

     for(int j = 0 ; j < Menu.length ; j++){ 

      if(Menu[j].getName().equals(recipeName)){ 

       return (Recipe)Menu[j]; 

      } 

      else{ 

       throw new RecipeNotFoundException(); 

      } 
     } 

}catch(RecipeNotFoundException e){ 

    System.out.println("Recipe Not Found!"); 

} 

    return null; 

} 

... 사용자 정의 RecipeNotFoundException을 던져 그냥 발견 밤은 말한다 예외!? 나는 반전 및 플롭 핑을 시도했지만, 단지 NullPointerExceptions로 이어지고 던지기를 할 수없는 모든 것을 검사합니다. 어떤 사람이 지침을 얻었습니까? 미리 감사드립니다! 전체 루프가 완료된 후

답변

3

은 예외를 던져 : 그것은 조리법을 찾을 경우는 예외를 던져 라인에 도달하기 전에, 그것은 반환

for (int j = 0; j < Menu.length; j++) { 
    if (Menu[j].getName().equals(recipeName)) { 
     return (Recipe) Menu[j]; 
    } 
} 
throw new RecipeNotFoundException(); 

.

물론 여기에 예외를 던지면 약간 무의미합니다. 다른 일을하지 않는다면 예외를 던지는 대신 루프 뒤에서 오류 처리 코드를 추가하면됩니다. 어쨌든 동일한 메서드 내에서 막 잡았 기 때문입니다. 메서드 자체가 아니라 메서드의 호출자가 오류를 처리하도록하려면 예외를 throw합니다.

+0

나는 그 일을 할 수 있는지도 몰랐습니다. 오 와우, 나는 매우 어리 석다. 고마워. – Sherifftwinkie

관련 문제