黑马程序员技术交流社区

标题: try catch finally 的一个小细节 [打印本页]

作者: 书生灬流年    时间: 2015-2-13 07:21
标题: try catch finally 的一个小细节
我们都知道try中有return时和finally的执行顺序。那么如果finally中有return呢?程序还会不会返回执行try catch中的语句呢?答案是否定的。
作者: wenyu    时间: 2015-2-13 11:53
要是会的话那不就是一个死循环了吗?这点java应该考虑到了吧
作者: 万合天宜    时间: 2015-2-13 12:19
http://bbs.itheima.com/thread-169811-1-1.html
作者: a986875894    时间: 2015-2-14 09:33
  1. public class Test {
  2.         public static void main(String[] args) {
  3.                 int a = 5;
  4.                 int b = 0;
  5.                 int c;
  6.                 try {
  7.                         System.out.println("异常发生之前");
  8.                         c = a/b;
  9.                         System.out.println("异常发生之后");
  10.                 } catch (Exception e) {
  11.                         System.out.println("catch块代码");// TODO: handle exception
  12.                 }finally{
  13.                         System.out.println("这是Finally块");
  14.                         return ;
  15.                 }
  16.         }
  17. }
复制代码


结果是
异常发生之前
catch块代码
这是Finally块

作者: 枪杆不如笔杆    时间: 2015-2-15 09:20
你在catch中写return后还是会执行到finally,说明finally已经是最后了,你又到finally中写return那肯定也不会到前面去啊
作者: rehan    时间: 2015-2-15 09:23
那是问什么呢?
作者: liaohongjie    时间: 2015-2-15 20:30
不会,finally中的return将catch块中的return覆盖了。




欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2