读书人

try。catch有关问题

发布时间: 2012-08-29 08:40:14 作者: rapoo

try。。。catch问题

Java code
// 读取数据    private class readThread extends Thread {        public void run() {            BufferedInputStream inStream = null;            String s = new String();            try {                inStream = new BufferedInputStream(socket.getInputStream());                while (true) {                    byte[] buffer = new byte[1024];                    inStream.read(buffer);                    String str = new String(buffer);                    Log.i("", str.trim());                    s += str.trim();                    Log.i("333333333333333333", s);                }            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            } finally {                Message msg = new Message();                Log.i("222222222", s);                msg.obj = s;                msg.what = 1;                LinkDetectedHandler.sendMessage(msg);                s = new String();            }        }    }


为什么finally里的代码不执行?

[解决办法]
探讨
我知道你说的,在死循环中,read肯定会出现异常。但是为什么没有执行finally!

[解决办法]
可能是socket没有数据写入,造成read()函数阻塞吧
[解决办法]
有数据写进来就不会阻塞了啊
[解决办法]
肯定是因为 没有 读取到数据的缘故,阻塞在那里了。

你可以用System.in.read();代替,都是等到接收数据的。只是这个要你从控制台输入,不然就一直等在那里。跟你代码的场景是一样的。
[解决办法]
探讨
read怎么可能发生异常 他读完了就返回-1 你自己好好看看read的说明

读书人网 >J2SE开发

热点推荐