首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >使用DOMConfigurator时无法捕获FileNotFoundException

使用DOMConfigurator时无法捕获FileNotFoundException
EN

Stack Overflow用户
提问于 2010-10-19 18:14:05
回答 3查看 725关注 0票数 3

我有以下代码:

代码语言:javascript
复制
try {  
    DOMConfigurator.configure(url+log4j.xml);
} catch(Exception e) {   
    e.printStackTrace();   
}

如果log4j.xml不存在,我会期望出现一个FileNotFoundException,然后将执行catch-block。

但是当文件不存在时,我没有看到异常,为什么呢?

EN

回答 3

Stack Overflow用户

发布于 2010-10-19 18:36:37

如果你看一下the source of DOMConfigurator.doConfigure,它看起来像是捕获了Exception,然后只记录错误,而不是重新抛出它。因此,FileNotFoundException不会返回到您的调用代码。

代码语言:javascript
复制
try {
...
} catch (Exception e) {
    if (e instanceof InterruptedException || e instanceof InterruptedIOException) {
        Thread.currentThread().interrupt();
    }
    // I know this is miserable...
    LogLog.error("Could not parse "+ action.toString() + ".", e);
} 

要解决此问题,您可以自己抢先检查该文件是否存在。

票数 2
EN

Stack Overflow用户

发布于 2010-10-20 01:48:31

尝试捕获Throwable而不是异常,并执行打印堆栈跟踪。这样,您就可以捕获任何错误或异常,并相应地更改代码。

票数 0
EN

Stack Overflow用户

发布于 2012-05-24 17:22:10

如果您想从log4j禁用这些消息,您可以将log4j设置为静默模式:

代码语言:javascript
复制
LogLog.setQuietMode(true);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/3967304

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档