记录或重新抛出此异常
Either log or rethrow this exception
可能与 重复。
这是我的代码 class:
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());
}
和我的记录器class:
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);
}
}
声纳指向 catch (final Exception e)
并说 Either log or rethrow this exception
。你怎么看?
如果您查看规则 RSPEC-1166 的说明,尤其是标题:
Exception handlers should preserve the original exception
在您的情况下,您只需要处理异常的 消息 ,因此不会保留原始的 异常(包括其 stacktrace )。因此,您生成的日志将隐藏失败的根本原因。
此规则检测到您没有在 catch 块中将捕获的异常作为整个 object 使用。
适当的修正
这可能不适合您的情况:
- 要么将规则标记为“不会修复”
- 或在您的质量配置文件中停用该规则
可能与
这是我的代码 class:
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());
}
和我的记录器class:
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);
}
}
声纳指向 catch (final Exception e)
并说 Either log or rethrow this exception
。你怎么看?
如果您查看规则 RSPEC-1166 的说明,尤其是标题:
Exception handlers should preserve the original exception
在您的情况下,您只需要处理异常的 消息 ,因此不会保留原始的 异常(包括其 stacktrace )。因此,您生成的日志将隐藏失败的根本原因。
此规则检测到您没有在 catch 块中将捕获的异常作为整个 object 使用。
适当的修正
这可能不适合您的情况:
- 要么将规则标记为“不会修复”
- 或在您的质量配置文件中停用该规则