无法捕获NetworkOnMainThreadException

Ric*_*ich 2 android exception

我知道导致NetworkOnMainThreadException的原因以及如何修复它,但为了改善开发体验,我希望能够捕获异常并至少记录事件或提醒用户(谁仍然是此时的开发人员)...

奇怪的是,我没有运气这个代码(通过我的TCP套接字发送和接收):

try
{
    toServer.println (msg.trim());
    resp = fromServer.readLine();
}
catch (android.os.NetworkOnMainThreadException nex)
{ ... do something here ... }
Run Code Online (Sandbox Code Playgroud)

Eclipse完全没有识别出异常,我从Android开发者网站上复制了异常类型 - 我很确定我拼写正确...

是否有一些我不了解的Java(也许)会让这个异常无法捕获?

谢谢,R.

Ale*_*ood 5

是否有一些我不了解的Java(也许)会让这个异常无法捕获?

是的,StrictMode让它无法捕捉.无论哪种方式,虽然,你应该捕获此异常.相反,您应该通过将代码包装在一个代码中来正确实现代码AsyncTask.抛出此异常的原因是为了防止您通过阻止UI线程来降低应用程序的速度.

阅读我的博客文章了解更多信息:

为什么冰淇淋三明治崩溃你的应用程序