我与Apache的HTTP客户端库在Eclipse异常已被其它异常错误
<dependency org="org.apache.httpcomponents" name="httpclient" rev="4.3.1"/>
实验和下面的代码片段抛出checked异常,需要进行处理捕获。
HttpResponse response = httpClient.execute(httprequest);
Eclipse中给出三点建议
添加抛出异常 -
throws ClientProtocolException, IOException
(正常工作)与尝试捕捉环绕 -
try { HttpResponse response = httpClient.execute(httprequest); } catch (ClientProtocolException e) { // TODO Auto-generated catch block e.printStackTrace(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
(也工作正常)
环绕使用try/multicatch
try { HttpResponse response = httpClient.execute(httprequest); } catch (ClientProtocolException | IOException e) { // TODO Auto-generated catch block e.printStackTrace(); }
第三选项给出错误
The exception ClientProtocolException is already caught by the alternative IOException
只见source code为ClientProtocolException
,它IOException
。就我的理解而言,当捕获多个异常时,我们可以在更具体的异常下捕获更通用的异常。所以在捕获IOException
后我们赶不上ClientProtocolException
。
那么,为什么这会发生在多次尝试抓住?如果它不能工作,Eclipse为什么会在第一位给出这个建议?