我正在制作一个应用程序,将RSS Feed解析为SQLite数据库,然后从中读取以填充帖子列表。数据库就在那里,即使没有连接,用户也可以查看之前检索过的帖子。
我把所有的解析都放到了try-catch中;但是,当它捕获异常时,应用程序崩溃。有没有办法优雅地处理这个异常,所以它只是跳过读取数据库中的内容?我已经考虑过使用SocketException
和XmlPullParserException
,但这些会带来更多错误或不会影响问题。
答案 0 :(得分:1)
抛出哪个异常?您可以在try / catch语句的末尾添加一个通用的异常处理程序。 e.g。
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" />
如果你使用那个电话,到你的机器人清单