我有一个这样的代码片段:
Log.i(tmpTag, "B4 URL CHANGE: URL in response = " + responseURL + ".nLast URL = " + mLastUrl); //SHOWN IN LOGCAT
if (m_CurrentEventName.contentEquals("forgotpassword")) {
mLastUrl = responseURL.replace("../../../", "");
} else if (m_CurrentEventName.contentEquals("tskstdlogin") && responseURL.indexOf("changepassword") != -1) {
mLastUrl = responseURL.replace("../../../", "");
} else {
mLastUrl = responseURL;
}
Log.i(tmpTag, "AFTER URL CHANGE: URL in response = " + responseURL + "nLast URL = " + mLastUrl); //NOT SHOWN IN LOGCAT
我期待两个日志语句,但只有第一个显示在LogCat中,如下所示:
08-27 09:39:06.867: I/bindDataTask(1994): B4 URL LOOP: URL in response = "some internal url".
08-27 09:39:06.867: I/bindDataTask(1994): Last URL = "some internal url".
知道为什么会发生这种事吗?
Logcat消息除了包含标记和优先级之外,还包含许多元数据字段。你的第一条日志行被执行了,所以它被打印了出来,但其他日志消息没有打印出来,因为发生了一些异常,你的程序控制转到了try-catch块的catch部分。。。
在这里。。。
try{
Log.i(tmpTag, "B4 URL CHANGE: URL in response = " + responseURL + ".nLast URL = " + mLastUrl); //SHOWN IN LOGCAT
...
...
// Exception occured..GOTO catch block
..
Log.i(tmpTag, "AFTER URL CHANGE: URL in response = " + responseURL + "nLast URL = " + mLastUrl); //NOT SHOWN IN LOGCAT
.....
}catch(Exception e){
Log.e("Exception here...",e.toString());
}