作者热门文章
- iOS/Objective-C 元类和类别
- objective-c - -1001 错误,当 NSURLSession 通过 httpproxy 和/etc/hosts
- java - 使用网络类获取 url 地址
- ios - 推送通知中不播放声音
我正在创建使用 SQLite 数据库的 android 应用程序。查看 SQLiteDatabase 类,我发现有一个名为 insertOrThrow()
的方法,它类似于 insert()
但有一个重要的区别 - 如果插入失败,它将抛出异常并且应用程序将死亡(如果未被捕获)。我在开发的初始阶段使用 insertOrThrow()
,因为它以一种非常明显的方式引起我对 SQL 错误的注意,即应用程序死机。
我只是好奇:为什么没有 updateOrThrow()
、deleteOrThrow()
等...我尝试用 google 搜索信息但没有找到任何信息。 .
最佳答案
我认为这可能是因为 insert
和 replace
旨在影响单个行。如果此处发生错误(例如由于约束而未实际插入您的行),则抛出可能更有意义。
delete
和 update
多行受到影响,零行受这些查询影响并不异常。
在任何一种情况下,都会由于各种原因抛出异常,例如格式错误的查询或不存在的表。
关于android - 为什么有 insertOrThrow 而没有 updateOrThrow 或 deleteOrThrow?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4845140/
我正在创建使用 SQLite 数据库的 android 应用程序。查看 SQLiteDatabase 类,我发现有一个名为 insertOrThrow() 的方法,它类似于 insert() 但有一个
我是一名优秀的程序员,十分优秀!