2011-10-06 4 views
0

나는 java를 사용하여 http 서버에 연결합니다. 모두 괜찮습니다. 물론 나는 예외 (SocketTimeoutException, ConnectException, IOException)를 잡는다. 하지만 내 문제는 때 (예를 들어) ConnectException 발생하면 응용 프로그램이 stucked 남아 있습니다. 더 이상 프로그램의 다른 부분에서 계속할 수 없습니다 ... 나는 시도했습니다 "return ..", System.exit (하지만 응용 프로그램에서 나가고 싶지 않습니다). 어떤 생각?catch 예외를 종료하는 방법

골격 음식물은 다음과 같습니다

boolean metod_to_check_http_server(){ 

try{ 
Create_connection(URL); 
Set_Time_Out(3000); 
open_HTTP_Connection(); 
Close_Connection(); 
return true; // All this part is fine... 
} 


catch (EXCEPTIONS) 
{ // Here I know I have connection problem 
// how could I return to main prog from here ? 
// return false ? not work... 
// System.exit(..); // too violent ! 
// so ? 
} 

답변

0

당신은 마지막으로 당신의 시도를 차단 추가하는 경우 - catch 문 당신은 당신의 흐름을 계속할 수

try 
{ 

} 
catch{ 

} 
finally{ 

} 
+0

항상 붙어있는 가장 기본적인 것입니다. 나는 문서에서 "finally"블록을 보았지만 멋지지 않았다. 물론 작동합니다. 내 눈의 그림자를 제거해 주신 모든 분들께 감사드립니다. – Zamboo

0

시도가 캐치 한 후 코드를 차단 마침내 넣어.

0
귀하의 질문은 프로그램 및 환경에 대한 자세한 내용을 모른 채 대답 할 수 없지만 알리는 좋은 생각이 될 수도

예를 들어 "연결에 실패했습니다."라는 대화 상자에서 연결 실패에 대해 사용자에게 알립니다. 그리고 finally 블록에서 열려있는 연결을 닫는 것을 잊지 마십시오. 내 연결이 마지막으로 블록 (닫혀 있는지 당신이 볼 수 있듯이

0

당신은 자신을 예외 처리를 수행하고 연결이 실패 또는 유효하지 않은 경우 거짓을 반환해야합니다 ....

boolean method_to_check_http_server(){ 

    try{ 
     Create_connection(URL); 
     Set_Time_Out(3000); 
     open_HTTP_Connection(); 
     return true; // All this part is fine... 
    } catch (EXCEPTIONS) { 
     displayError(); 
     return false; 
    } finally { 
     Close_Connection(); 
    } 
} 

, 나는 확인했다) 그래서 일부 OS 스레드에서 열린 소켓을 어딘가에 두지 않습니다.

관련 문제