在我的应用程序中,我使用SQLiteOpenHelper
类,并且它具有insertOrThrow
方法。我想知道这个方法会在抛出异常之前关闭我的连接吗?它是在方法定义上写的“新插入行的行ID,如果发生错误则为-1”
抛出异常时它的返回值是多少?出了点问题。解释还是扔?
这就是我使用InsertOrThrow
的方式。
我想知道什么时候我向我的方法声明throws Exception
,是否有必要使用try-catch
(如果我没有任何特殊的事情可以像我的exp那样捕获)?
public long insert(ContentValues cv) throws Exception {
try
{
long rowId = getWritableDatabase().insertOrThrow(_tableName, null, cv);
return rowId;
}
catch (Exception ex) {
throw ex;
}
finally{
Close();
}
}
答案 0 :(得分:1)
取决于;如果this.Close()
可以抛出异常,那么它仍然需要被声明为被抛出或被捕获。通常情况下,这是用一种小实用方法完成的。
强制性使用catch
,您只需try
/ finally
。
关于返回值:由于异常而退出的方法没有返回值。
例外情况应该将足够的信息封装到:
我建议您遵循标准的Java命名约定,以避免混淆读者的代码:非最终变量应以小写字母开头。方法名称也应以小写字母开头。
此外,当您无需消除您正在访问的属性的歧义时,您无需在this
前面添加方法(或变量)。
答案 1 :(得分:0)
抛出异常时它的返回值是多少?出了点问题。
是的,你是对的。文档似乎错了。
insertOrThrow
不会返回-1
,而是在查询失败时会抛出SQLException
。还有另一个名为insert
的方法,如果查询失败,将返回-1
,如果成功则返回新创建的rowID
。