我的代码根据某些条件为某些表生成动态列。 该列可能存在也可能不存在。
所以我在做 -
cur.getString(cur.getColumnIndex("Dynamic_Column_Name"))
cur.getColumnIndex(“Dynamic_Column_Name”)的api说 -
返回给定列名的从零开始的索引,如果是,则返回-1 列不存在。
因此,如果Dynamic_Column_Name
不是我表格中的列,那么它将是 -
cur.getString(-1)
cur.getString(-1)的api表示 -
以String形式返回所请求列的值。结果和 当列值为null时,此方法是否抛出异常 或者列类型不是字符串类型是实现定义的。
那么在我的情况下返回类型是什么,还是会通过一些例外?
有没有最好的方法来处理这种情况?
答案 0 :(得分:2)
你会得到一个例外。具体做法是:
java.lang.IllegalStateException:无法从CursorWindow读取第n行col -1。在从中访问数据之前,请确保Cursor已正确初始化。
为避免这种情况,请在使用之前检查列索引是否为-1。