为了账号安全,请及时绑定邮箱和手机立即绑定

请问布尔值方法是怎么理解

请问布尔值方法是怎么理解

aluckdog 2019-03-20 18:19:07
描述你的问题越学越糊涂了,这布尔值方法怎么理解呢?看代码,每次在最后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个赞

题主需要清楚两点:

  1. 在函数体中,一旦执行了return语句,就会跳出这个函数体,return后面跟的表达式的值就是函数的返回值。

  2. try-catch-finally的复合语句中,如果try中的语句抛出异常,则会直接跳转到相应异常的catch语句中去。无论try中的语句有没有抛出异常,在执行完trycatch中的所有语句后,总会继续执行finally中的语句。

所以,当try中的语句没有任何异常时,其中最后一句return true;语句就会使函数返回true。而如果有异常抛出,则会跳转到相应异常的catch语句中去,从而把try中的return true;给跳过了,这样在执行完finally以后,函数体的最后一个return false;语句被执行,使函数返回false


查看完整回答
反对 回复 2019-04-16
?
慕娘9325324

TA贡献1783条经验 获得超4个赞

如果执行了try里面的方法,一旦里面的代码抛了异常就跳出执行后面的代码,如果不抛异常,一旦返回就不再往下执行。


查看完整回答
反对 回复 2019-04-16
  • 3 回答
  • 0 关注
  • 624 浏览

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信