public static Logger createLogger(String name)
{
Logger logger = Logger.getLogger(name);
try
{
String logPath ="../log";
File dir = new File(logPath);
if (!dir.exists())
{
dir = new File(logPath);
dir.mkdirs();
}
dir = null;
FileHandler fileLogger = new FileHandler(logPath + "/" + name + "_%g.xml", 50 * 1024 * 1024, 65535);
logger.setLevel(Level.ALL);
logger.addHandler(fileLogger);
}
catch (IOException ex)
{ }
finally
{
return logger;
}//第442行
}

解决方案 »

  1.   

    JBuilder是不会报错的。Eclipse中默认会出现 warning: finally clause cannot complete norma。你可以在 window->preferences->compiler中设置是显示error,warn或者ignore.
    要想不出现错误。可以如下更改代码既可以了: finally
    {
    //return logger;
    }
                      return logger;
      

  2.   

    首先, 你得明白finally 得作用, 这样写也不能说错了, 但为什么要在finally 中返回呢,
    提示是说, 你这样做,结果不一定能正确, 你应该在末尾明确的返回如果要去掉这个错, 你可以试一下,在结尾处加上一个返回语句
      

  3.   

    呵呵看来楼主的意思是不管程序怎么运行,都必须return logger;包括执行了catch的语句。本人不明白的地方是finally 在这儿有什么用诶。呵呵不过从语法上看来是没有错的。
      

  4.   

    public static Logger createLogger(String name)
    {
    Logger logger = Logger.getLogger(name);

    try {
    String logPath ="../log";
    File dir = new File(logPath);
    if (!dir.exists())
    {
    dir = new File(logPath);
    dir.mkdirs();
    }
    dir = null;
    FileHandler fileLogger = new FileHandler(logPath + "/" + name + "_%g.xml", 50 * 1024 * 1024, 65535);
    logger.setLevel(Level.ALL);
    logger.addHandler(fileLogger);
    } catch (IOException ex) {
    ;
    } finally {
    ;
    }
    return logger;
    }