如何 split/ungroup 使用自定义属性报告 Crashlytics 非致命异常?

How to split/ungroup Crashlytics non-fatal exceptions report using custom attribute?

我将在与服务器同步期间遇到的错误发送给 Crashlytics。这些错误主要包含有关不同数据冲突的信息。所有错误都包含在一个异常 class 中,该异常具有 apiErrorCode 等字段。我无法为每个错误创建单独的异常 class,因为它们有很多。因此,我使用 Crashlytics.logException() 发送的所有此类异常都被分组到仪表板上的一份报告中。所以我得去"All sessions"那里一一排查错误,很不方便。此外,我无法关闭和锁定一些我不想在报告中看到的错误类型(比如一些预期的服务器错误)。是否可以手动设置 Crashlytics 分组策略(在我的例子中基于 apiErrorCode)?

这里是来自 Fabric 的迈克。没有办法覆盖我们对记录的错误所做的分组。我建议具体说明异常类型和消息,而不是使用单个异常 class,尽管这确实会增加代码复杂性。

如果您有来自一个堆栈跟踪的不同类型的异常,您可以通过在顶部再添加一个自定义元素来更改堆栈跟踪:

public class CustomException extends Exception {

    public CustomException(String message, int lineNumber) {
        super(message);
        StackTraceElement[] stackTrace = getStackTrace();
        StackTraceElement[] newStackTrace = new StackTraceElement[stackTrace.length + 1];
        System.arraycopy(stackTrace, 0, newStackTrace, 1, stackTrace.length);
        newStackTrace[0] = new StackTraceElement("className", "methodName", "fileName", lineNumber);
        setStackTrace(newStackTrace);
    }
}