当前位置: 代码迷 >> J2EE >> 关于错误的有关问题
  详细解决方案

关于错误的有关问题

热度:231   发布时间:2016-04-22 03:37:05.0
关于异常的问题
请问在
method(){
  try{

  return 0;
  }catch(){
  .... 
  }finally{
  if{}{
  return -1;
  } 
  }
  return 0;(这里为什么非要加一个return呢?执行到finally结束不是就跳出了吗,后面的return就不会执行了对吗?能不能解释一下,谢谢~~~~)
}

------解决方案--------------------
return 是方法的返回值,如果你的方法没有返回值,也就是返回为voit
那就不用return了,
finally是不管发不发生异常都会执行的一块!
希望对你有帮助!
------解决方案--------------------
finally 指在
try/catch/finally中无论是否有异常发生,都会执行的代码片断
单 tcf 本身也只是一个片断而已,这个片断执行完了,当然还要执行 tcf 后面的代码啦!

------解决方案--------------------
回楼主,fianlly不会结束方法.

而finally里的return被放在了if语句中.

一旦if判断的结果为false,这个方法的当前流程就没有return可以返回了.

为了保证方法无论如何都有返回值,最后追加了一个return.
------解决方案--------------------
finally是无论catch到异常或者没有catch到异常都会执行的一段代码,而并不是执行完就跳出方法体的

上面的代码里由于你的method是要求有返回值的,而
catch(){ 
....
}finally {
if{}{ 
return -1; 
}


代码段中catch里没有return -1;
finally里面有return -1;但是是有if条件限制的
如果不满足if的话就不会return -1;
因此代码中还缺少对不满足if条件的情况的返回值处理
所以最后一个return 0;不能少

除非
catch(Exception e){ 
throw e;
}
抛出了这个e的话就不需要返回值了
  相关解决方案