Android Room Persistence Library:处理错误

Boh*_*sen 14 android android-room

我正在试图找出如何处理Room的错误.我有以下在数据库中插入任务的交互器:

TaskInteractor.java

public class TaskInteractor extends AbstractInteractor implements TaskContract.Interactor {

    final TaskRepository mRepository;

    interface Callback {
        void onSuccess();
        void onFailure(Throwable t);
    }

    @Inject
    public TaskInteractor(WorkerThread workerThread,
                             MainThread mainThread,
                             TaskRepository repository) {
        super(workerThread, mainThread);
        this.mRepository = repository;
    }

    @Override
    public void insertTask(final Task task, final Callback callback)
            throws SQLiteException {
        mWorkerThread.get().execute(new Runnable() {
            @Override
            public void run() {
                try {
                    mRepository.insertTask(task);
                } catch (SQLiteException exeption) {
                    Timber.e("Insertion failed. Exception: " + exeption.getMessage());
                    callback.onFailure(exeption);
                    throw exeption;
                }
                Timber.d("Insertion succeeded.");
                callback.onSuccess();
            }
        });
    }
}
Run Code Online (Sandbox Code Playgroud)

insertTask我使用try-catch块来检查是否SQLiteException发生了.如果是,我抛出异常.但这是处理错误的好方法还是有更好的方法?