声纳可能重复,抱怨记录和重新触发异常。
这是我在类中的代码:
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)并表示记录或重新抛出此异常。你觉得怎么样?
如果查看规则说明: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中。 我该怎么解决这个? 如果你想看我可以上传的代码。
问题内容: 我的程序中包含以下代码,并将其与Maven集成后,我正在运行SonarQube 5以对其进行代码质量检查。 但是,Sonar抱怨我应该 记录或重新抛出此异常 。 我在这里想念什么?我还没有记录异常吗? 问题答案: 您应该这样做: 声纳不应该再打扰您了
我的程序中有下面的代码,在与Maven集成后,我正在运行SonarQube 5进行代码质量检查。 然而,Sonar抱怨说,我应该记录或者重播这个异常。 我错过了什么?