/ /キャッチ例外を終了する方法-Java、例外、try-catch

catch例外からの終了方法 - java、exception、try-catch

私はjavaを使用してhttpサーバーに接続しています。すべてが正常です。もちろん例外をキャッチします(SocketTimeoutException, ConnectException, IOException)。しかし、私の問題は(たとえば) ConnectException 発生すると、アプリはスタックしたままになります。もうプログラムの別の部分に進むことはできません... "return ..", System.exit (ただし、アプリケーションを終了したくない)。

スケルトンprogは次のようになります。

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 ?
}

回答:

回答№1は0

try-catchステートメントにfinallyブロックを追加すると、フローを続行できます

try
{

}
catch{

}
finally{

}

回答№2の場合は0

catchブロックの後、コードにfinallyブロックを入れてみてください。


回答№3の場合は0

あなたの質問は知らずに答えることはできませんプログラムと環境の詳細については説明しますが、たとえば「接続に失敗しました」というダイアログで、接続の失敗についてユーザーに通知することをお勧めします。そして、「開いている接続を閉じることを忘れないでください finally ブロック。


回答№4の場合は0

自分で例外処理を行い、接続が失敗した場合や無効な場合はfalseを返す必要があります。

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();
}
}

ご覧のとおり、接続が(finallyブロックで)閉じられていることを確認し、OSスレッドで実行されている開いたソケットをどこかに残さないようにしました。