代码里如何优雅处理极端情况

2016-07-01 00:12:54 +08:00
 dopcn
遇到一个问题:
1. 在客户端使用单一 sqlite 文件做数据库
2. 这个数据库要放在用用户 ID 命名的文件夹里
3. 操作 sqlite 文件的 client 是一个单例
4. 在单例初始化的时候要用 sqlite 文件的地址

这样会有一种可能,单例初始化的时候用户 ID 还没请求到,在哪一步处理这种情况可以保证正常运行和代码简洁

client 单例有 reset sqlite 文件路径的方法,可以在请求到用户 ID 之后 reset 一次,但是之前如果发生了初始化怎么处理更优雅
3172 次点击
所在节点    程序员
5 条回复
lowzoom
2016-07-01 00:29:51 +08:00
最优雅,但工作量也最大的,应该是
你的 client 支持请求队列,在还没初始化的时候,全部操作请求都进队列存着,等一初始化好的时候,再拿出来执行
SoloCompany
2016-07-01 01:14:35 +08:00
你知道单例难道不知道有 lazy init 的吗
66450146
2016-07-01 01:27:22 +08:00
throw an exception
zionst
2016-07-01 13:18:28 +08:00
先写进 in-memory database ,稍后再用 Online Backup API dump 到 disk
BigUncleLee
2016-07-01 16:26:57 +08:00
同意一楼

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/289490

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX