2017-02-22 2 views
0

두 ID (id1, id2)가 있으며 처음 실패하면 서버에서 데이터를 가져 오려고합니다.Java에서 처음 실패한 경우 서버 호출 실행

try 
{ 
loadData1(id1); 
} 
catch(Exception e) 
{ 
loadData2(id2); 
} 

이 방법이 좋으 냐 또는 다른 대안이 있습니까?

+3

이동을 추가 할 수없고 다음 시도-catch 블록에서 수 있도록 당신은 loadData1(id1); 작업이 성공인지 확인하는 조건 확인을 할 수 있습니다. catch는 적절한 예외를 처리하는 것입니다. – XtremeBaumer

+1

메소드에 try catch를 넣고 실패하면 다시 호출하십시오. 카운터를 넣으면 카운터가 무한 루프에 빠질 수 있습니다. –

+0

첫 번째 ID를로드하는 데 실패하면 예외가 발생하는 이유는 무엇입니까? 왜 메소드의 반환 값은로드가 성공적이지 않았 음을 나타냅니다. 이드는 존재하지 않기 때문에? 일반적으로 예외는 단지 그런 것, 즉 드물게 발생해야하는 예기치 않은 또는 예기치 않은 조건을 의미합니다. 어떤 이유로 작동이 실패 할 것으로 예상되는 경우, 예를 들어 작업을 허용하는 것이 좋습니다. 호출하기 전에 전제 조건을 검사하거나 적절한 반환 값/상태를 확인하십시오. – Thomas

답변

1

이것은 좋지 않습니다. 오류/예외를 처리하고 오류 정보를 기록하기 위해 catch 블록을 사용해보십시오. 당신이 캐치로 다른 시도에 논리를 loadData2(id2);

boolean loadSuccess=false; 
    try 
    { 
    loadSuccess=loadData1(id1); 
    } 
    catch(Exception e) 
    { 
    //error handling or logging code goes here 
    } 
    if(!loadSuccess) 
    { 
    try 
    { 
    loadData2(id2); 
    } 
    catch(Exception e) 
    { 
    //error handling or logging code goes here 
    } 
    } 
0

예외를 throw하면 loadData1이 실패합니다. 하지만 loadData2는 다음과 같이 처리 할 수 ​​있습니다. -

  1. loadData2 함수 호출 catch가 다시 효과적인 try-catch로 묶입니다.
  2. loadData2는 이미 예외 처리가 구현 된 함수입니다.

조건 중 하나가 충족되면 나머지 코드는 계속 실행해야합니다.

관련 문제