bool t=false;
try{
……
t=true;
}
catch{}
return t;

try{
……
return true;
}
catch{return false;}
请问这俩有啥区别?哪种比较好?

解决方案 »

  1.   

    上面的return都能执行到 而下面的return可能走不到 因为在return前有异常的话会跳到catch
      

  2.   

    觉得第一种好,尽量使程序只有一个出口(return)
      

  3.   

    没区别,都行,只要异常了都能够返回false
      

  4.   

    应该是没有区别,个人比较喜欢这样写:
    bool t; 
    try

      …… 
      t=true; 

    catch
    {
      t=false;

    return t; 把方法块分成 声明 ,处理,和返回三个部分,觉得好看点儿,呵呵
      

  5.   

    bool t; 
    try 

      …… 
      t=true; 

    catch 

      t=false; 

    finally
    {
      return t;
    }放到Finally块里才是正解。对于LZ说的两种,第二种不符合单出口规范,尽量避免。
    另外,如果以后要扩展更新,要再后面加个Finally块了,在Try块里是绝对不能用return的。
      

  6.   

    说一下,不一定对哦。return 在try里面呢。
    可能 不会被执行到。因为,如果return 上面 有 执行失败的语句,就会直接跳到catch里面去了
    而,trturn 我外面呢,执行完try 和catch 才被执行。
    如果,在try里面的 return.这个函数 是要求返回值的话, vs2008可能会提示你,这个函数,没有一个真确的return.
      

  7.   

    如果这段代码是在一个带返回值大方法里bool t=false; 
    try{ 
    …… 
    t=true; 

    catch{} 
    return t; 会报错,编译无法通过,因为,可能只要代码正常运行,不抛异常,就没有return语句可执行。
    而try{ 
    …… 
    return true; 

    catch{return false;} 没有问题。
    当然也可以像楼上几位说的这么去做bool t; 
    try 

      …… 
      t=true; 

    catch 

      t=false; 

    finally 

      return t;