首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当我在android上使用SQLExecption ()时,为什么不需要捕捉db.exec呢?

问当我在android上使用SQLExecption ()时,为什么不需要捕捉db.exec呢?
EN

Stack Overflow用户
提问于 2014-06-10 15:28:56
回答 2查看 78关注 0票数 0

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

db是一个SQLiteDatabase对象。

当我编写下面的代码时,eclipse不提醒我捕获SQLException,代码可以运行normally.However,该方法应该根据Eclipse提供的文档抛出一个SQLException。

我认为程序员在用java创建方法时应该捕捉每个exception或添加抛出语句。

下面是我的代码。

代码语言:javascript
复制
@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();
}

谢谢。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2014-06-10 15:34:06

看看文档:SQLException扩展了RuntimeException,您不需要使用throws子句。

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

票数 4
EN

Stack Overflow用户

发布于 2014-06-10 15:30:07

如果方法不抛出异常或抛出RuntimeException,则不必捕获它。

因为该方法抛出一个RuntimeException,所以不需要捕获它(就像NullPointerException或ArrayIndexOutOfBounds异常一样)。

但是,异常会使程序崩溃。您仍然可以捕获异常,只需使用try catch。

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24144967

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档