Java 如何使用试抓代替强制关闭?
我有android和java的代码。当用户的Internet连接出现问题或无法访问网站时,我想向用户显示一个对话框。我试图将我的代码放入Java 如何使用试抓代替强制关闭?,java,android,try-catch,Java,Android,Try Catch,我有android和java的代码。当用户的Internet连接出现问题或无法访问网站时,我想向用户显示一个对话框。我试图将我的代码放入try-catch块,但当互联网连接出现问题时,我的应用程序关闭。我想向用户显示消息,而不是关闭应用程序 HttpPost ht = new HttpPost("http://yahoo.com"); HttpClient hc = new DefaultHttpClient(); HttpResponse hr = null;
try-catch
块,但当互联网连接出现问题时,我的应用程序关闭。我想向用户显示消息,而不是关闭应用程序
HttpPost ht = new HttpPost("http://yahoo.com");
HttpClient hc = new DefaultHttpClient();
HttpResponse hr = null;
try {
hr = hc.execute(ht);
} catch (ClientProtocolException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
String htmlTemp = "";
try {
HttpEntity he = hr.getEntity();
htmlTemp = new String(EntityUtils.toString(he));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
您可以尝试将
UnknownHostException
添加到捕获中,也可以在调用请求之前使用此方法:
public static boolean hasConnection() {
ConnectivityManager cm = (ConnectivityManager) MbridgeApp.getContext().getSystemService(
Context.CONNECTIVITY_SERVICE);
NetworkInfo wifiNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_WIFI);
if (wifiNetwork != null && wifiNetwork.isConnected()) {
return true;
}
NetworkInfo mobileNetwork = cm.getNetworkInfo(ConnectivityManager.TYPE_MOBILE);
if (mobileNetwork != null && mobileNetwork.isConnected()) {
return true;
}
NetworkInfo activeNetwork = cm.getActiveNetworkInfo();
if (activeNetwork != null && activeNetwork.isConnected()) {
return true;
}
return false;
}
您是否在清单文件中声明了此使用权限
<uses-permission android:name="android.permission.INTERNET" />
是否有错误的堆栈跟踪?想知道这是否是权限问题吗?您可能在第一个try/catch块中遇到未处理的异常,您只捕获了ClientProtocolException和IOException。您只捕获了两种非常特定的错误类型。从通用错误处理程序开始捕获异常分析如何处理它们,然后实现特定的错误处理程序。请参阅和。