Android:我应该如何处理数据库访问异常?

前端之家收集整理的这篇文章主要介绍了Android:我应该如何处理数据库访问异常?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

我的问题是关于数据库异常处理的良好实践.

假设我有一个应用程序将一些数据存储在DB中.实现了以下层:

> DatabaseAdapter – 处理SQL查询并以模型的形式向更高层提供数据.适配器包含以下方法

>列出getAllUsers()
> void addUser(UserModel用户)

> UserListActivity – 显示所有用户的列表,允许添加新用户等.此活动使用DatabaseAdapter读取/写入数据库.

问题是:我是否应该处理数据库访问的异常,例如在添加新记录时(假设记录应该始终正确添加)?我应该尝试捕获DatabaseAdapter中的异常并将其添加到日志中吗?或许我根本不应该抓住它?

最佳答案
大多数情况下,查询数据库时的异常是“开发时间”错误的结果,如错误查询,或修改模式但不增加数据库版本,或类似的东西.这些将很容易在现场找到并修复,因此您的最终用户不会受到这些类型的错误的影响.

但是,在下列情况下,您可能也有例外情况:

>您尝试从多个进程(灾难处方)访问您的sqlite数据库.
>用户的设备上的磁盘空间不足.
>由于未正确转发用户输入,您的查询格式错误.
>你的onUpgrade()方法中有一个错误或类似的东西.
>您正在使用参照完整性(可能在sqlite 3.6.19及更高版本中),并且某些表约束失败.

真的,这些场景没有普遍的答案.对于最终用户来说,显示简单错误比让应用程序强制关闭更好.

我的经验法则是不惜一切代价避免数据库损坏.我宁愿抛出一个RuntimeException并立即杀死应用程序,而不是让它默默地做错了.此外,我宁愿显示一条消息,说无法完成插入而不是强行关闭应用程序.

猜你在找的Android相关文章