在Fabric中记录状态代码为400+(失败)的API响应

时间:2015-11-20 12:38:00

标签: android retrofit crashlytics twitter-fabric

我尝试将Fabric中状态码为400+的所有API响应记录为非致命异常。获取已创建的RestAdapter外观的简化方法如下:

public static Api get() {
    if (mInstance == null) {
        mInstance = new RestAdapter
                .Builder()
                .setEndpoint(API_URL)
                .setErrorHandler(new ErrorHandler() {
                    @Override 
                    public Throwable handleError(RetrofitError cause) {
                        Crashlytics.logException(new ApiException(cause.getMessage() + ": " + cause.getUrl(), cause));
                        return cause;
                    }
                })
                .build()
                .create(Api.class);

    }
    return mInstance;
}

问题是,所有这些异常都折叠为Fabric中的一个,因为每次在同一行代码中抛出相同的异常。我想根据响应的状态代码对它们进行分类。

Collapsed exceptions

我正在思考如何解决这个问题,我想到的想法很少:

  • 在运行时生成exeptions(例如ApiException404等)。
  • 在不同的行中抛出异常(处理所有状态代码的巨大开关)

......但这两种方法都很难看。感谢您的每一条建议或想法。

0 个答案:

没有答案