如何退出捕获异常

时间:2011-10-06 08:12:24

标签: java exception try-catch

我正在使用java连接到http服务器。一切都很好。当然,我会捕获异常(SocketTimeoutExceptionConnectExceptionIOException)。但我的问题是当(例如)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 ?
}

4 个答案:

答案 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线程中的某个地方运行已打开的套接字。