日期:2014-05-17  浏览次数:20732 次

分析代码:为什么会有两个catch?
String info = "";
try {
info = HttpUtil.postUrl("http://" + myUrl + "/default2.aspx",
pairs, mHttpClient, "");
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}


请问为什么需要两个catch?这两个的作用分别是什么?
java httpclient Exception

------解决方案--------------------
我想你是写写完了代码之后才发现了有异常要捕获的时候才自动生成的代码。
 info = HttpUtil.postUrl("http://" + myUrl + "/default2.aspx",
                    pairs, mHttpClient, "");抛出了两种异常,所以自动生成的时候生成了两个catch。对于两种不同的异常做不同的处理,当然你也可以改成这样:

String info = "";
        try {
            info = HttpUtil.postUrl("http://" + myUrl + "/default2.aspx",
                    pairs, mHttpClient, "");
        } catch (Exception e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        } 

这样用超类Exception将各种异常全部捕获做统一的处理。这样的话处理就没有原来的那个准确。看实际情况吧, 如果要求要精确处理的话就用原来的那种吧 ,如果只是想打印一下,就用Exception捕获吧