【发布时间】:2016-10-24 14:50:44
【问题描述】:
有没有办法生成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 有时会被覆盖,而mTypeClass 是T 的类。
【问题讨论】:
-
您的代码永远不需要创建
DatabaseError。这听起来像XY problem。如果您描述您要完成的工作,为我们提供一些关于用例的上下文(最好是MCVE),这可能会更容易提供帮助。 -
@FrankvanPuffelen 我添加了一个用例
标签: android error-handling firebase firebase-realtime-database