“不允许捕捉异常”Checkstyle报告

时间:2017-07-18 15:01:01

标签: java exception-handling

我正在生成嵌入maven网站的Checkstyle报告,并指出其中一个问题Catching exception is not allowed。我该如何解决这个问题?我只是不想简单地删除代码,如果我没有其他替代方案来解决这个问题。

public void contextInitialized(ServletContextEvent event) {
    super.contextInitialized(event);

    ServletContext context = event.getServletContext();
    setupContext(context);
    LoggingHandler logging = (LoggingHandler) AppContext.getBean( "loggingHandler" );

    try {
        loadClientUserData( context, logging );
        loadMBeans( context, logging );

    } catch (Exception e) {
        throw new RuntimeException( "Error during startup of service !!!" );
    }
}

我仍然在学习Java,所以我们将不胜感激。

由于

3 个答案:

答案 0 :(得分:5)

它警告你的是,抓住Exception是一个坏主意。 Exception是您可以捕获的最常见的异常类型。你基本上是在说“无论问题,我能处理它。”这不是真的。可能会发生任何奇怪和奇妙的问题:键盘中断,磁盘空间已满,列表继续。

你说loadClientUserData会抛出一个ManagerException,所以你应该抓住那个特定的异常并让其他人继续进一步宣传:

try {
     loadClientUserData( context, logging );
     loadMBeans( context, logging );
} catch (ManagerException e) {
     throw new RuntimeException( "Error during startup of service !!!" );
}

有关详细信息,请参阅以下问题:

答案 1 :(得分:2)

你正在捕捉一个通用例外,并且对于看起来像Checkstyle的问题什么都不做。您可以通过创建抑制文件来重新抛出异常,更好地处理它,或忽略Checkstyle验证。

答案 2 :(得分:0)

你应该抓住最简单的Exception子类,因为这里的解释太冗长了,但是简单的Exception包括未经检查的异常。

如果您的方法声明为throws Exception,那么风格问题也是如此。