黑马程序员技术交流社区
标题:
try,catch,中用break无限循环异常
[打印本页]
作者:
猫咪不吃糖
时间:
2013-10-28 22:29
标题:
try,catch,中用break无限循环异常
本帖最后由 猫咪不吃糖 于 2013-11-1 14:15 编辑
try
{
length = socketClient.Receive(arrMsgRec);
}
catch (SocketException ex)
{
ShowMsg("异常:" + ex.Message+socketClient.RemoteEndPoint.ToString());
break;
}
catch (Exception ex)
{
ShowMsg("未知异常:" + ex.Message);
break;
}
复制代码
开启服务器,开启客户端连接。
然后关掉客户端,断开连接。
出现了一个情况,无限循环输出异常消息;
ShowMsg("异常:" + ex.Message+socketClient.RemoteEndPoint.ToString());
这是为什么??
系统是WIN7。
用return的话是正常的。而且后面也能继续接受其他客户端连接。
补充下,try catch外层是while(true)的持续监听的循环。
我的问题是,break是跳出到哪层?仅跳出catch语句吗?跳出后接着执行try?
但我看视频也是break,就不会无限循环啊,这是为什么?win7和XP不一样?
作者:
念念念念_、
时间:
2013-10-29 17:02
虽然关闭了连接,但是线程还在工作,在不断的连接,但是由于连接不到,所以会一直报错。应该在中断连接的时候,把字典集合中的地址和端口移除掉。把线程也结束掉。
dict.Remove(socketClient.RemoteEndPoint.ToString());
dictThread.Remove(socketClient.RemoteEndPoint.ToString());
lbOnline.Items.Remove(socketClient.RemoteEndPoint.ToString());
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2