java - 为什么在 Android 上使用 db.exec() 时不需要捕获 SQLExecption?

标签 java android sqlite sqlexception

当我在 Android 上使用 db.exec() 时,为什么不需要catch SQLExecption

数据库是一个SQLiteDatabase对象。

当我编写以下代码时,Eclipse 不会提醒我捕获 SQLException 并且代码可以正常运行。但是,该方法应该根据情况抛出 SQLException到eclipse提供的文档。

我认为程序员应该在 java 中创建方法时捕获每个异常或添加 throws 语句。

以下是我的代码。

@Override
protected void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);
    SQLiteDatabase db=openOrCreateDatabase("keys.db",Context.MODE_PRIVATE,null);
    String sql="CREATE TABLE `mykey` (_id INTEGER PRIMARY KEY AUTOINCREMENT, "+
            "public_key VARCHAR, private_key VARCHAR)";
    db.execSQL(sql);
    db.close();
}

谢谢。

最佳答案

看看documentation :SQLException 扩展了RuntimeException,并且您不需要这些throws 子句。

编辑:请注意,这仅适用于 Android。在 Java SE 中,SQLException 不是从 RuntimeException 派生的。

关于java - 为什么在 Android 上使用 db.exec() 时不需要捕获 SQLExecption?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24144967/

相关文章:

unit-testing - SQLite 单元测试 NHibernate 生成的级联关系

java - 列表和 map 的通用集合?

java - 在发布到应用商店后,Android应用会为所有设备引发UnsatisfiedLinkError

android - 使用 Sugar ORM 继承

Android mp3声音增加

android - 继承Theme.AppCompat.DayNight后改变ActionBar文字颜色

android - Android SQLite 支持 SQLite "WITHOUT ROWID"吗?

java - 使用 SAX 解析常见的 XML 元素

java - ViewPager + TabLayout 在每个 Activity 中都带有 NavigationDrawer - 问题

iphone - 在单例模式下使用 sqlite 时何时打开和关闭连接