解决方案 »

  1.   

    第1个return很好理解吧,第2个return是当你catch到异常的时候,在catch块结束后执行的。因为异常发生的可能是在第一个return语句之前(这分代码中如果发生异常,则我认为一定是发生在第一个return之前)
      

  2.   

    这里编译器认为try catch里的return有可能走不到,所以第二个return是有机会走的,就和if判断一样。
      

  3.   


    道理同上,你要是发生异常了..catch之后呢?  肯定需要一个return的啦
      

  4.   

    public String createJson(){
       JSONObject jsonObject=null;
        try{
            jsonObject=new JSONObject();
            jsonObject.put("id","1");
            jsonObject.put("name","李磊");
            jsonObject.put("age",30);
        }catch(Exception e){
            e.printStackTrace();
        }    return  null!=jsonObject?jsonObject.toString():"";
    }
    也可以这么写,估计好理解点
      

  5.   

    一楼正确。
    如果没有异常,则执行 return jsonObject.toString(), 第二个return不可达。
    如果在第一个return之前发生异常,最终将执行return "";
      

  6.   

    《Thinking in Java》一书中原话:return关键字的用法,它包括两方面:首先,它代表“已经做完,离开此方法”。其次,如果此方法产生了一个返回值,这个值要放在return语句后面。
      

  7.   

    那为什么 第二个return不写在catch里
      

  8.   

    try catch 完整的是少个finally{}的, finally{} 是最终无论如何都执行的.
    return 写在try里是正常执行想要的返回结果
    catch 里是发生异常时 返回的结果.
    但是有时候 并非上述两种情况就可以概括所有, 所以 写在catch外的return 类似finally里的return, 就是如果try里面没有正常执行, 那么不管有没有发生异常都要执行最下面的return, 这个return 写在finally中你就能懂了.
      

  9.   

    try catch 完整的是少个finally{}的, finally{} 是最终无论如何都执行的.
    return 写在try里是正常执行想要的返回结果
    catch 里是发生异常时 返回的结果.
    但是有时候 并非上述两种情况就可以概括所有, 所以 写在catch外的return 类似finally里的return, 就是如果try里面没有正常执行, 那么不管有没有发生异常都要执行最下面的return, 这个return 写在finally中你就能懂了.
    已秒懂
      

  10.   

    你的基础有点差啊 当其中一个return返回之后剩下的代码就不会执行了