0

我正在准备一个简单的用户注册应用程序。该数据库仅包含两个字段,用户名和密码,其中用户名是主键。当我尝试输入重复的记录时,它会引发异常(如预期的那样)。我想显示一条自定义消息,说“用户已经存在”。这是我的代码:

public boolean addUser(UserDetails user) {
    SQLiteDatabase db = this.getWritableDatabase();

    ContentValues values = new ContentValues();
    values.put("USERNAME", user.getUserId());
    values.put("PASSWORD", user.getPassword());

    try {
        db.insert("USERNAME_PASSWORD", null, values);
    } catch (Exception e) {
        return false;
    }
    db.close();
    return true;
}


//In the class from which I am calling this method:
    boolean isAdded = util.addUser(user);
        if (!isAdded) {
            Toast.makeText(this,
                    "Username alread exists! Try with another user name.",
                    Toast.LENGTH_LONG).show();
        }

在 logcat 中,我看到了异常详细信息。我想向用户提供某种错误消息,但函数总是返回true. 请提出一种方法来做到这一点。

4

2 回答 2

0

创建一个新方法getUser(String userId)并从您的方法中调用它addUser

如果getUser返回一些东西,那么从你的addUser方法中,return true;

于 2013-08-24T19:37:07.220 回答
0

您需要使用insertOrThrow()使插入引发异常以供您捕获

但在我看来,使用 ccheneson 的解决方案比捕捉异常更好

于 2013-08-24T19:31:38.677 回答