首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > JAVA > J2SE开发 >

关于finally的有关问题

2012-01-09 
关于finally的问题!我用eclipse写了一段程序,但eclipse给我了一段警告:finallyblockdoesnotcompletenormal

关于finally的问题!
我用eclipse写了一段程序,但eclipse给我了一段警告:finally   block   does   not   complete   normally


try   {
                                //    try   块里主要是写读文件,当遇到一些错误时,设置isError标志位,并抛出异常

                                }   catch   (EOFException   e)   {
                                                e.printStackTrace();
                                }   catch   (IOException   e)   {
                                                e.printStackTrace();
                                }   catch   (SecurityException   e)   {
                                                e.printStackTrace();
                                }   catch   (Exception   e)   {
                                                e.printStackTrace();
                                }   finally   {
                                                try   {
                                                                dis.close();
                                                                is.close();
                                                                alermSchedule.close();
                                                               
                                                }   catch   (IOException   e)   {
                                                                //   TODO   Auto-generated   catch   block
                                                                e.printStackTrace();


                                                }   finally   {
                                                                if   (   isError   ||   !fileExists   )   {
                                                                                return   null;
                                                                }   else   {
                                                                                return   timeVector;
                                                                }
                                                }
                                }


但我如果要是写成以下形式,就没有警告,


try   {


                                }   catch   (EOFException   e)   {
                                                e.printStackTrace();
                                }   catch   (IOException   e)   {
                                                e.printStackTrace();
                                }   catch   (SecurityException   e)   {
                                                e.printStackTrace();
                                }   catch   (Exception   e)   {
                                                e.printStackTrace();
                                }   finally   {
                                                try   {


                                                                dis.close();
                                                                is.close();
                                                                alermSchedule.close();
                                                               
                                                }   catch   (IOException   e)   {
                                                                //   TODO   Auto-generated   catch   block
                                                                e.printStackTrace();
                                                }
                                }
                                if   (   isError   ||   !fileExists   )   {
                                                return   null;
                                }   else   {
                                                return   timeVector;
                                }


我主要想知道这个警告是如何产生的?为什么出会出现这样的警告?
谢谢大家了。

[解决办法]
应该是正常的提示吧
[解决办法]
The classic use for finally is to clean up resources.
Do not return from finally directly.
[解决办法]
ls的顶一个不能再finally直接返回
[解决办法]
finally中不推荐使用 continue,break,return等可以直接跳出的关键词,正如楼上所说的,finally主要做的是清楚资源。

热点排行