Android 用自定义错误消息替换异常日志记录
我使用Android的httpclient连接到一个域,如下所示:Android 用自定义错误消息替换异常日志记录,android,exception,toast,Android,Exception,Toast,我使用Android的httpclient连接到一个域,如下所示: try { URL url = new URL("example.com"); HttpURLConnection conn = (HttpURLConnection)url.openConnection(); read(conn.getInputStream()); } catch (Exception e) { e
try {
URL url = new URL("example.com");
HttpURLConnection conn = (HttpURLConnection)url.openConnection();
read(conn.getInputStream());
} catch (Exception e) {
e.printStackTrace();
}
现在,如果我删除此行,是否可以:
e.printStackTrace();
并将其替换为:
Toast toast = Toast.makeText(getApplicationContext(), "Could not connect to domain.", Toast.LENGTH_LONG);
toast.show();
或者我必须对“e”变量做些什么?在这种情况下:
catch (Exception e) {
e.printStackTrace();
Toast toast = Toast.makeText(getApplicationContext(), "Could not connect to domain.", Toast.LENGTH_LONG);
toast.show();
}
如果我执行e.printStackTrace(),它将打印到哪里?我建议只捕获抛出的异常类型(我认为在本例中是IOException)。其他例外情况可能是完全无关的问题 是的,可以用烤面包代替printStackTrace。额外提示:打电话就行了
Toast.makeText(getApplicationContext(), "Could not connect to domain.", Toast.LENGTH_LONG).show();
您可以在一行中完成这一切。:)
e.printStackTrace()
将打印到标准logcat跟踪,您可以使用adb logcat
命令查看该跟踪(adb是Android SDK的一部分)。Thanx,因此e.printStackTrace()
仅用于开发/记录目的,在已发布的应用程序中使用它没有意义?thanx是toast的快捷方式:)它只用于开发/记录目的,但我仍然认为在发布的应用程序中使用它是有意义的。对于网络错误,这可能过于嘈杂,但打印出异常通常很有帮助,这样当客户报告问题时,您可以请求logcat输出或bugreport并从中进行调试。