0

我正在制作一个将 RSS 提要解析为 SQLite 数据库的应用程序,然后从中读取该数据库以填充帖子列表。数据库在那里,因此即使没有连接,用户也可以查看之前检索到的帖子。

我已经把所有的解析都放到了 try-catch 中;但是,当它捕获到异常时,应用程序会崩溃。有没有办法优雅地处理这个异常,所以它只是跳到读取数据库中的内容?我已经研究过使用SocketExceptionand XmlPullParserException,但这些要么带来更多错误,要么不影响问题。

4

1 回答 1

1

哪个异常被抛出?您可以在 try/catch 语句的末尾添加一个通用异常处理程序。例如

try {
  //...your code here
} catch (XmlPullParseException xe) {
  //log error
} catch (SocketException se) {
  //log error
} catch (Exception e) {
  //log error
}

您还可以使用以下静态方法在拨打电话之前检查有效连接:

public static boolean isOnline(Context context) {
   ConnectivityManager cm = (ConnectivityManager)context.getSystemService(Context.CONNECTIVITY_SERVICE);
   NetworkInfo netInfo = cm.getActiveNetworkInfo();
   if (netInfo != null && netInfo.isConnectedOrConnecting())
      return true;
   else
      return false;
}

确保添加:

<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

如果您使用该调用,则添加到您的 android 清单

于 2011-11-17T20:24:56.167 回答