当我在android上使用catch SQLExecption时,为什么不需要db.exec()呢?
db是一个SQLiteDatabase对象。
当我编写下面的代码时,eclipse不提醒我捕获SQLException,代码可以运行normally.However,该方法应该根据Eclipse提供的文档抛出一个SQLException。
我认为程序员在用java创建方法时应该捕捉每个exception或添加抛出语句。
下面是我的代码。
@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();
}谢谢。
发布于 2014-06-10 15:34:06
看看文档:SQLException扩展了RuntimeException,您不需要使用throws子句。
编辑:请注意,这只适用于Android。在Java中,SQLException不是从RuntimeException派生的。
发布于 2014-06-10 15:30:07
如果方法不抛出异常或抛出RuntimeException,则不必捕获它。
因为该方法抛出一个RuntimeException,所以不需要捕获它(就像NullPointerException或ArrayIndexOutOfBounds异常一样)。
但是,异常会使程序崩溃。您仍然可以捕获异常,只需使用try catch。
https://stackoverflow.com/questions/24144967
复制相似问题