Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/391.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
声明日志文件路径时发生java.io.IOException_Java - Fatal编程技术网

声明日志文件路径时发生java.io.IOException

声明日志文件路径时发生java.io.IOException,java,Java,我试图用Java登录到一个文件,因此我查看并编写了以下代码: private static final Logger log = Logger.getLogger( QualityGatesProvider.class.getName() ); //some other code FileHandler fh = new FileHandler("/Users/me/.jenkins/myLogs"); log.addHandler(fh); 但是,在FileHandler fh=newfil

我试图用Java登录到一个文件,因此我查看并编写了以下代码:

private static final Logger log = Logger.getLogger( QualityGatesProvider.class.getName() );
//some other code
FileHandler fh = new FileHandler("/Users/me/.jenkins/myLogs");
log.addHandler(fh);
但是,在
FileHandler fh=newfilehandler(“/Users/me/.jenkins/myLogs”),我得到这个:

unreported exception java.io.IOException; must be caught or declared to be thrown
知道代码有什么问题吗?

java.io.IOException是一个异常。因此,任何可能抛出它的线必须是:

-包含在捕获它的try-catch块中

try{
        ...

        FileHandler fh = new FileHandler("/Users/me/.jenkins/myLogs");
        ...

    } catch (java.io.IOException e){
        //handle exception
    }
.-包含在显式抛出它的方法中

void myMethod() throws java.io.IOException{
...
        FileHandler fh = new FileHandler("/Users/me/.jenkins/myLogs");
...
}

您需要在块内编写以下代码:

log.addHandler(fh);
它不能与其他类成员声明一起直接放在
类的主体中

将其放入如下方法中:

public void foo() {
    log.addHandler(fh); // this will still give a compilation error
}
为了解决编译错误

声明方法以引发异常或在方法内部处理异常

public void foo() throws Exception{
    log.addHandler(fh);
}



希望这有帮助

看起来此代码不在块内。在
类中不能只有随机代码。仅允许
静态
变量声明和实例变量声明。还要注意的是,虽然您的
日志
静态的
,但如果这起作用,您的
fh
就不是这样了,每次您创建所讨论的
的实例时,您都会添加一个
文件处理程序。现在整个问题都改变了。那么,是哪一个?
public void foo() {
    try{
        log.addHandler(fh);
    } catch (Exception e){
        e.printstacktrace();
        // OR handle exception here
    }
}