我正在开发一个Android 3.1及以上的应用程序,但这个问题并不是针对特定环境。我有三个层:活动(表示),模型(表示数据库表的对象)和数据(访问SQLite数据库的类)。如何处理数据库异常:软件设计
我所有的数据库方法是像这样的:
public void insertUserAnswers(ArrayList<UserAnswer> answers)
{
try
{
if ((db == null) || (!db.isOpen()))
this.open();
}
catch (Exception e) {
e.printStackTrace();
}
finally
{
this.close();
}
}
正如你可以看到我抓住每一个例外,我不通知任何人谈起它,因为(这是我的问题)我不知道如何去做。
如何通知它是一个sql命令错误?有没有什么模式可以做到这一点?
我想我可以返回一个值来指示是否缓存异常。
谢谢您的回答。我有一个特定的问题,我不知道如何处理:我连接到Web服务,检索一些数据,然后我将本地存储。如果这些数据被破坏,将会导致异常。这不是一个软件问题,我该如何处理?谢谢。 – VansFannel
如果数据可能被破坏(=您希望错误不是由错误代码引起的),那么请确保捕获适当的异常(并非全部)并找到处理该情况的方法。例如。检查你检索的数据是否有效,以防万一它没有重试(并且可能会阻止你以这种方式得到的异常)。如果自动错误处理是不可能的,那么通知用户它可以在以后再次尝试,如果这是可能的话。让它崩溃的方法只适用于你应该修复的错误代码,而不是你的代码必须处理的网络超时/传输错误等。 – zapl