处理一个异常

public static void test(String host,int port) throws HttpException, IOException {

HttpClient client = new HttpClient();

// 设置代理服务器地址和端口

//client.getHostConfiguration().setProxy("221.214.208.17", 3128);

client.getHostConfiguration().setProxy(host, port);
// 使用 GET 方法 ,如果服务器需要通过 HTTPS 连接,那只需要将下面 URL 中的 http 换成 https

    // 使用POST方法  
     HttpMethod method = new PostMethod("http://www.7y8.com/V/ip.asp");  
    client.executeMethod(method);  
    // 打印服务器返回的状态  
    System.out.println(method.getStatusLine());  

    // 打印返回的信息  
    //String result = method.getResponseBodyAsString();  
    StringBuffer rets = new StringBuffer();
    InputStream responseBody = method.getResponseBodyAsStream();
    InputStreamReader in = new InputStreamReader(responseBody, "gb2312");
    BufferedReader br = new BufferedReader(in);
    String s = "";
    while ((s = br.readLine()) != null) {
        rets.append(s + "\n");
    }

    s = "";
    if (rets.toString().contains(host)) {
        box = new MessageBox(shell, SWT.CENTER);
        box.setText("IP测试!");
        box.setMessage("代理IP可用");
        box.open();
    }else{
        box = new MessageBox(shell, SWT.CENTER);
        box.setText("IP测试!");
        box.setMessage("代理IP不可用");
        box.open();
    }
    br.close();
    in.close();
    writeToTXT("C:\\Documents and Settings\\Administrator\\桌面\\xxx.html",rets);
    // 释放连接  
    method.releaseConnection();  


}  

2010-4-11 1:19:19 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
信息: I/O exception (java.net.ConnectException) caught when processing request: Connection timed out: connect
2010-4-11 1:19:19 org.apache.commons.httpclient.HttpMethodDirector executeWithRetry
信息: Retrying request

上面程序可以简单判断一个代理IP是否可用,但是有一种代理IP无法响应会引发以下异常,并且程序主界面同时会无法响应,问下这种异常该如何处理,因为IP最后是传进来的,这段代码里的IP我只是测试用,所以如果遇到无法响应的情况就无法处理了,希望得到满意的答复,谢谢!

[size=x-large][color=red]我看出你把你这个方法的异常都往被调用处抛,所以你在调用这个方法的地方,按如下这样来catch.[/color][/size]

[code="java"] public static void testTEST(){
try{
test(host,port);
}catch(ConnectException e){
System.out.println("代理无法响应...");
JOptionPane.showMessageDialog(null, "代理无法响应);
}

}[/code]

[size=large][color=red]
当然,你要明白,异常可以向外抛出,也可以在本方法内自已处理,根据需要来选择.
希望对你有所帮助.....[/color][/size]