Android抛出异常

时间:2011-12-31 19:56:36

标签: android exception throw

在我的应用程序中,我使用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();
    }
}

2 个答案:

答案 0 :(得分:1)

取决于;如果this.Close()可以抛出异常,那么它仍然需要被声明为被抛出或被捕获。通常情况下,这是用一种小实用方法完成的。

强制性使用catch,您只需try / finally

关于返回值:由于异常而退出的方法没有返回值。

例外情况应该将足够的信息封装到:

  • 允许调用者对异常执行有用的操作,例如,重试操作,或
  • 协助开发人员了解问题并引导他/她解决问题。

我建议您遵循标准的Java命名约定,以避免混淆读者的代码:非最终变量应以小写字母开头。方法名称也应以小写字母开头。

此外,当您无需消除您正在访问的属性的歧义时,您无需在this前面添加方法(或变量)。

答案 1 :(得分:0)

  

抛出异常时它的返回值是多少?出了点问题。

是的,你是对的。文档似乎错了。

insertOrThrow不会返回-1,而是在查询失败时会抛出SQLException。还有另一个名为insert的方法,如果查询失败,将返回-1,如果成功则返回新创建的rowID

相关问题