黑马程序员技术交流社区

标题: 问个小问题 [打印本页]

作者: 谭荣强    时间: 2014-2-26 12:54
标题: 问个小问题
不是说finally中式一定要被执行的代码吗,怎么编译时报错没try, 下面是代码的一部分

l.lock();
                try
                {
                        while (!flag)
                        {
                                con.await();               
                                                               
                        }
                }
                catch (Exception e)
                {
                }       
                System.out.println(Thread.currentThread().getName()+"..."+count+++this.name);
                flag = false;
                con.signalAll();
                finally
                {
                        l.unlock();       
                }
作者: 无道    时间: 2014-2-26 14:07
System.out.println(Thread.currentThread().getName()+"..."+count+++this.name);
                flag = false;
                con.signalAll();


是不是这里报错呀!如果是你可以将这此代码写入try的括号内。
作者: 谭荣强    时间: 2014-2-26 21:09
我的意思是finally下面的三行代码把finally隔开,finally的功能是不是就没有了?
try
                {
                        while (!flag)
                        {
                                con.await();               
                                                               
                        }
                }
                catch (Exception e)
                {
                }  
//我的意思是下面的三行代码把finally隔开,finally的功能是不是就没有了?      
                System.out.println(Thread.currentThread().getName()+"..."+count+++this.name);
                flag = false;
                con.signalAll();
                finally
                {
                        l.unlock();        
                }
作者: 年少丶    时间: 2014-2-27 12:31
try{}catch(){}finally{}格式是这样的,代码只能写在{}里面
作者: ζ丶凡σ    时间: 2014-3-1 09:14
1、try{}catch(){}finally{}  
2、try{}catch(){}
3、try{}finally{}   
一般就这种格式,有时1、2中可以同时有多个catch。
也就是任意一种格式都得有try{},你的代码finally{}是独立的,就抽示你没有try{}。




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