두 ID (id1, id2)가 있으며 처음 실패하면 서버에서 데이터를 가져 오려고합니다.Java에서 처음 실패한 경우 서버 호출 실행
try
{
loadData1(id1);
}
catch(Exception e)
{
loadData2(id2);
}
이 방법이 좋으 냐 또는 다른 대안이 있습니까?
두 ID (id1, id2)가 있으며 처음 실패하면 서버에서 데이터를 가져 오려고합니다.Java에서 처음 실패한 경우 서버 호출 실행
try
{
loadData1(id1);
}
catch(Exception e)
{
loadData2(id2);
}
이 방법이 좋으 냐 또는 다른 대안이 있습니까?
이것은 좋지 않습니다. 오류/예외를 처리하고 오류 정보를 기록하기 위해 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
}
}
예외를 throw하면 loadData1이 실패합니다. 하지만 loadData2는 다음과 같이 처리 할 수 있습니다. -
조건 중 하나가 충족되면 나머지 코드는 계속 실행해야합니다.
이동을 추가 할 수없고 다음 시도-catch 블록에서 수 있도록 당신은
loadData1(id1);
작업이 성공인지 확인하는 조건 확인을 할 수 있습니다. catch는 적절한 예외를 처리하는 것입니다. – XtremeBaumer메소드에 try catch를 넣고 실패하면 다시 호출하십시오. 카운터를 넣으면 카운터가 무한 루프에 빠질 수 있습니다. –
첫 번째 ID를로드하는 데 실패하면 예외가 발생하는 이유는 무엇입니까? 왜 메소드의 반환 값은로드가 성공적이지 않았 음을 나타냅니다. 이드는 존재하지 않기 때문에? 일반적으로 예외는 단지 그런 것, 즉 드물게 발생해야하는 예기치 않은 또는 예기치 않은 조건을 의미합니다. 어떤 이유로 작동이 실패 할 것으로 예상되는 경우, 예를 들어 작업을 허용하는 것이 좋습니다. 호출하기 전에 전제 조건을 검사하거나 적절한 반환 값/상태를 확인하십시오. – Thomas