私は次の2つの方法があります
方法1
public String[] getSongIds(String whereClause)
{
String countQuery = "SELECT songid FROM TABLE_INDEX WHERE " + whereClause;
Cursor cursor = db.rawQuery(countQuery, null);
int cursorSize = cursor.getCount();
int[] songIds = new int[cursorSize];
int count=0;
if (cursor != null ) {
if (cursor.moveToFirst()){
do{
songIds[count] = cursor.getInt(cursor.getColumnIndex("songid"));
count++;
}while(cursor.moveToNext());
}
}
cursor.close();
db.close();
return getSongTitles(songIds);
}
方法2
private String[] getSongTitles(int[] songIds) {
/some algorithm
return songTitles;
}
メソッド1は別のパッケージから呼び出されます。方法1は、SQLiteデータベースに対してクエリを実行し、2番目のメソッドを呼び出します。メソッド1でSQLiteクエリを実行することでよく発生する例外をキャッチする必要があります。できれば、これらのメソッドが最初に呼び出されたパッケージからユーザーにメッセージを表示できるように、(-1)などを返します。したがって、(間違った入力の)SQL例外が発生した場合にメソッド1がメソッド2を呼び出さないようにし、代わりに他のパッケージに何かを返します。
psこの例外をキャッチする方法をいくつか見ましたが、それらのアプローチに満足していませんでした。これに対処するための最良の方法を知りたい。乾杯