当前位置: 首页 > 知识库问答 >
问题:

记录或重新显示此异常

禄仲渊
2023-03-14

声纳可能重复,抱怨记录和重新触发异常。

这是我在类中的代码

try
    {
        this.processDeepLinkData(data);
    }
    catch (final Exception e)
    {
        // Error while parsing data
        // Nothing we can do
        Logger.error(TAG, "Exception thrown on processDeepLinkData. Msg: " + e.getMessage());
    }

和我的日志类:

    import android.content.Context;
    import android.util.Log;
    import com.crashlytics.android.Crashlytics;

    public final class Logger
    {
        /**
         * Convenience method.
         *
         * @see Logger#log(String, String)
         */
        public static void error(final String tag, final String msg)
        {
            if (Logger.DEBUG)
            {
                Log.e(tag, "" + msg);
            }
            else
            {
                Logger.log(tag, "" + msg);
            }
        }

        private static void log(final String tag, final String msg)
        {
            Crashlytics.log(tag + ": " + msg);
        }
}

声纳指向捕获(最终异常e)并表示记录或重新抛出此异常。你觉得怎么样?

共有1个答案

汪学真
2023-03-14

如果查看规则说明:https://rules.sonarsource.com/java/RSPEC-1166

尤其是标题:

异常处理程序应保留原始异常

在您的情况下,您只关心异常的消息,因此没有保留最终的stacktrace(以及故障的根本原因)。

此规则检测到您没有将捕获的异常用作catch块中的整个对象。

这可能不适合您的情况:要么将规则标记为“不会修复”,要么在质量配置文件中停用它。

 类似资料:
  • 在将代码与Maven集成之后,我正在运行Sonarqube5进行代码质量检查。 Sonar抱怨我应该: 记录或重新显示此异常。 在下面这段代码中: 我错过了什么?

  • 这是我的方法,当我试图通过sonarQube分析我的代码时,我得到了这个错误: 异常处理程序应保留原始异常:记录或重新显示此异常。 为什么我会得到这个错误,我不应该像我的方法一样捕获异常吗? 我的方法:

  • 在将SonarQube与Maven集成后,运行SonarQube进行代码质量检查时,我有以下代码。 然而,Sonar抱怨说,我应该记录或者重播这个异常。 我错过了什么?谁能帮我一下吗。

  • 我有3节课。MainActivity,OneFragment,TwoFragment,我在OneFragment上使用Sqlite填充了listview,并且我从TwoFragment中添加了记录(使用我的SqlHelper类使用的CreateData函数),但是新记录没有显示在listview中。 我该怎么解决这个? 如果你想看我可以上传的代码。

  • 我怀疑这可能是我包含的一个库,它正在扰乱我的日志。这有可能吗?librray可以改变我的日志显示方式吗?既然我有点迷路了,我该怎么调查呢?

  • 问题内容: 我的程序中包含以下代码,并将其与Maven集成后,我正在运行SonarQube 5以对其进行代码质量检查。 但是,Sonar抱怨我应该 记录或重新抛出此异常 。 我在这里想念什么?我还没有记录异常吗? 问题答案: 您应该这样做: 声纳不应该再打扰您了