Android 用自定义错误消息替换异常日志记录

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

我使用Android的httpclient连接到一个域,如下所示:

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并从中进行调试。