2014-04-24 2 views
0

전설의 리그에서 모든 챔피언 ID가있는 JSON 개체를 가져 오는 방법이 있습니다. 프로그램의 다른 루프에서 메서드에 전달되는 "숫자"를 기반으로 챔피언의 이름을 반환합니다.내 메서드는 문자열을 반환해야하지만 내 메서드는 문자열을 반환하는 return 문을 가지고 있다고 계속 말합니다.

public String getChampionName(int number) //where it is saying its not returning a string 
{ 
    try 
    { 
     String JSonChampionName = readURL("myURLwithAPIkey"); 
     JSONObject object = JSONObject.fromObject(JSonChampionName); 
     JSONObject championData = (JSONObject)(object.get("data")); 
     JSONObject champName = (JSONObject)(championData.get(number)); 
     if(object != null && championData != null && champName != null) 
     { 
      String cName = champName.get("name").toString(); 
      return cName; 
     } 
     else 
      return ""; 
    }catch(Exception v){} 
} 

어떤 아이디어라도 그 방법이 문자열을 반환하지 않는 이유는 확실하지 않습니다.

+1

예외가 throw 된 경우이 메서드는 어떻게됩니까? 그러면 문자열이 반환되지 않습니다. 그것이 그 불평 이유입니다. –

+1

예외가 발생하여 잡으면 ... 정확히 무엇을 반환합니까? –

+0

[Java 기본 - 가능한 반환 유형 및 메서드에서 return 문 약간의 혼란] 가능한 중복 (http://stackoverflow.com/questions/8287717/java-fundamental-a-little-confusion-on-return-type-and -return-statement-in-met) –

답변

2

Exception이 잡히면 어떻게 될까요? 이 경우 메서드에 return 문이 없습니다.

Exception을 잡지 않거나 Exception이 걸리는 경우 return 문을 제공하십시오.

2

컴파일러는 프로그램에서 사용할 수있는 모든 가능한 경로에 문자열을 반환해야한다고 말합니다. 예외가 발생하면 catch하지만 catch 블록은 아무 작업도 수행하지 않습니다. 프로그램은 아무 것도 반환하지 않고 메서드의 끝으로 넘어갑니다.

예외가 잡히면 무언가를 반환하거나 다른 예외를 throw하도록 메서드를 수정해야합니다.

1

모든 시나리오에서 예상 유형을 반환해야합니다 !! 컴파일러가 기대하는 바가 있습니다.

는 지금, 당신이 구현 된 코드로, 문제는 컴파일러는 return 문이 있더라도 불평 왜 예외의 경우이 방법은 ...

그게 아무것도 반환하지 않는다는 것입니다 ..

관련 문제