Cursor 遍历数据库,莫名其妙出现异常大体代码:Cursor cur = getContentRessolver().query(....);
.....
....int ColNum = cur.getCoumnCount(); // 运行时,获取到的值是41String val = null;while(cur.MoveNext())
{
for(int i = 0; i < ColNum; i++)
{
val = cur.getString(i); // 此处,在外层while循环进行第四轮时,i = 10时程序崩溃,如果跳过10,i = 11或更大,均不会出现崩溃。 ....
...
}
}注释处是出错原因现象,这种错误让我感到迷惑,已经在多次遇到这样的错误了
要命的是,错误我无法预知,根本不给我处理错误的机会,程序就报异常了
哪位处理过类似的问题,指导一下,不胜感激额!我是在读联系人数据库时出现的上述错误。
分不多了,全部奉上
.....
....int ColNum = cur.getCoumnCount(); // 运行时,获取到的值是41String val = null;while(cur.MoveNext())
{
for(int i = 0; i < ColNum; i++)
{
val = cur.getString(i); // 此处,在外层while循环进行第四轮时,i = 10时程序崩溃,如果跳过10,i = 11或更大,均不会出现崩溃。 ....
...
}
}注释处是出错原因现象,这种错误让我感到迷惑,已经在多次遇到这样的错误了
要命的是,错误我无法预知,根本不给我处理错误的机会,程序就报异常了
哪位处理过类似的问题,指导一下,不胜感激额!我是在读联系人数据库时出现的上述错误。
分不多了,全部奉上
自己在adb shell里进入到数据库手动查看下是不是数据问题。
val = cur.getString(i); // 此处,在外层while循环进行第四轮时,i = 10时程序崩溃,如果跳过10,i = 11这错误try catch捕获不到啊,所以我上层无法处理你在啊,能否用QQ交流一下?36367977
那是因为你需要一个不是string的数据类型,可能。
或者数据库中第四行第十一行的数据有错误。
try {
全部语句
} catch(Exception e) {
System.out.println("cursor is exception " + e.getMessage());
e.printStackTrace();
} finally {
cursor.close();
}
不可能抛不出异常还崩了,把异常传上来看看。要是抛不出那就是Sqlite自身的问题了。
getLong()也报同样的错误,数据有错误该怎么办呢?