描述你的问题越学越糊涂了,这布尔值方法怎么理解呢?看代码,每次在最后return XX;的时候总是有点理解不了,特别是看API的时候......请问用下面这段代码讲解一下,怎么理解这种有布尔值的方法?这段代码有两个return.....贴上相关代码private boolean downURlToStream(String url, OutputStream outputStream) { BufferedInputStream in = null; BufferedOutputStream out = null; HttpURLConnection http = null; try { URL url1 = new URL(url); http = (HttpURLConnection) url1.openConnection(); http.setReadTimeout(3000); http.setRequestMethod("GET"); in = new BufferedInputStream(http.getInputStream(), 8 * 1024); out = new BufferedOutputStream(outputStream, 8 * 1024); int b; while ((b = in.read()) != -1) { out.write(b); } return true; } catch (MalformedURLException e) { e.printStackTrace(); } catch (IOException e) { e.printStackTrace(); } finally { if (http != null) { http.disconnect(); } try { if (in != null) { in.close(); } if (out != null) { out.close(); } } catch (IOException e) { e.printStackTrace(); } } return false; }贴上报错信息贴上相关截图已经尝试过哪些方法仍然没解决(附上相关链接)
3 回答
HUX布斯
TA贡献1876条经验 获得超6个赞
题主需要清楚两点:
在函数体中,一旦执行了
return
语句,就会跳出这个函数体,return
后面跟的表达式的值就是函数的返回值。在
try-catch-finally
的复合语句中,如果try
中的语句抛出异常,则会直接跳转到相应异常的catch
语句中去。无论try
中的语句有没有抛出异常,在执行完try
或catch
中的所有语句后,总会继续执行finally
中的语句。
所以,当try
中的语句没有任何异常时,其中最后一句return true;
语句就会使函数返回true
。而如果有异常抛出,则会跳转到相应异常的catch
语句中去,从而把try
中的return true;
给跳过了,这样在执行完finally
以后,函数体的最后一个return false;
语句被执行,使函数返回false
。
添加回答
举报
0/150
提交
取消