安卓中的SQLException错误处理

4

您好,在我的项目中,我需要处理一些异常,例如重复的值、空字段等等。我考虑使用try catch方法来实现。

public void deleteRegisterID(Object object) {
    SQLiteDatabase oDBLocal = this.getWritableDatabase();
    try {
        oDBLocal.execSQL("delete from " + STRTABLE_REGISTER + " where " + KEY_ID
                + " = " + object + ";");
    }catch (SQLException mSQLException) {
        Log.e("Loginerror", "getproductData >>" + mSQLException.toString());
        throw mSQLException;
    }
}

我能获取错误信息,但需要对其进行处理并向用户发送一些消息以便重新输入,因此我想借助这个来实现。

catch (SQLException mSQLException)
    {
       switch (mSQLException.getErrorCode ())
       {
          case 19:
             //some toast message to user.
             break;
          case 11:
             //some toast message to user.
             break;
          default:
             throw mSQLException;
       }
     }

当我查看 mSQLException 时,SQLException 中没有像 getErrorCode() 这样的方法,但在android文档中有,请问是否有人可以帮忙?

1个回答

3
首先,我想解释一下SQLException类。在Android中,您可以访问两个SQLException类:android.database.SQLExceptionjava.sql.SQLException。您的链接有关于java.sql.SQLException类的说明。请查看此链接,其中包含有关android.database.SQLException类的信息。您可能使用了android.database.SQLException类,但是我们没有getErrorCode()方法。
针对您的问题,我可以给出一个临时解决方案。您可以使用以下实现来解决您的问题。
catch (SQLException mSQLException) {
            if(mSQLException instanceof SQLiteConstraintException){
                //some toast message to user.
            }else if(mSQLException instanceof SQLiteDatatypeMismatchException) {
                //some toast message to user.
            }else{
                throw mSQLException;
            }
        }

您可以从此链接的子类列表中选择任何子类。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接