声明日志文件路径时发生java.io.IOException
我试图用Java登录到一个文件,因此我查看并编写了以下代码:声明日志文件路径时发生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
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
}
}