我看教科书上写
try{
   //do sth
}catch(Exception e){
   //do sth
   return -1;
}
return 0;
-----------------------
为什么return 0要写在try-catch外
而不能写在try里?
----------------------
如果我这么写会有什么隐患么?
try{
   //do sth
   return 0;
}catch(Exception e){
   //do sth
   return -1;
}

解决方案 »

  1.   

    如果异常发生在RETURN语句之前,程序无法中止,而在CATCH子中可以保证发生异常并处理后正常退出
      

  2.   

    public void f(){
    try{
       //do sth1
       return 0;
    }catch(Exception e){
       //do sth2
       return -1;
    }
    }
    编译程序必须找到一个绝对可以执行到的return语句
    如果你的do sth1和do sth2都有错误的话,不就什么也return不了了
      

  3.   

    可以写在里面,只是只有当扑捉到异常后才可能执行try catch里面的return,如果没有扑捉到异常,是不会执行里面的return的,所以,在外面也必须有一个return。