我正在使用java连接到http服务器。一切都很好。当然,我会捕获异常(SocketTimeoutException
,ConnectException
,IOException
)。但我的问题是当(例如)ConnectException
发生时,应用程序仍然停留。我不能继续在程序的其他部分继续...我试过"return ..", System.exit
(但我不想退出应用程序)。有什么想法吗?
骨架编程看起来像这样:
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 :(得分:0)
尝试在catch之后将finally块放在代码中。
答案 1 :(得分:0)
如果你将finally块添加到try-catch语句中,你可以继续你的流程
try
{
}
catch{
}
finally{
}
答案 2 :(得分:0)
如果不了解有关您的程序和环境的更多信息,则无法回答您的问题,但最好告知用户有关连接失败的信息,例如在“连接失败”对话框中。并且不要忘记关闭finally
块中的任何打开的连接。
答案 3 :(得分: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线程中的某个地方运行已打开的套接字。