有没有一种方法可以生成DatabaseError对象的新实例?

编辑:

我正在使用实现ValueEventListener的类,在该类中,我想捕获异常并通过onCancelled(DatabaseError databaseError)方法路由错误。

public class StandardSingleValueListener<T> implements ValueEventListener {

    protected Class<T> mTypeClass;

    public StandardSingleValueListener(Class<T> typeClass){
        mTypeClass = typeClass;
    }
    @Override
    public void onDataChange(DataSnapshot dataSnapshot) {
        T result = null;
        try {
            result = parseMethod(dataSnapshot);
        } catch (Exception e) {
            onCancelled(new DatabaseError(e.toString()); // I'd like to create the error here
            return;
        }
        // process result
    }

    @Override
    public void onCancelled(DatabaseError databaseError) {
        // process databaseError
    }

    protected T parseMethod(DataSnapshot snap){
        return snap.getValue(mTypeClass);
    }
}
parseMethod有时会被覆盖,而mTypeClassT的类。

最佳答案

您可以使用以下方法创建 DatabaseError from the exception:

DatabaseError.fromException(e);

但是我不确定这是个好主意。您要传达的错误是应用程序级错误。将其提高为DatabaseError势必会导致那些在您之后维护该代码的人感到困惑。

08-06 08:29