※ 为什么循环不能继续?

J_2004 2006-05-31 10:53:13
while (it.hasNext()){
key = it.next();
try{
cc = (ChatClient)chatClients.get(key);
cc.sendln(str);
}catch(Exception e){
//e.printStackTrace();
try {
cc.close();
} catch (Exception e1) {
e1.printStackTrace();

}
chatClients.remove(key);
continue;
}

}

---------
运行以上代码,当发生异常时,循环就退出了。已经捕获异常,并处理了,为什么循环不能继续?
*异常是这个方法抛出的: cc.sendln(str) -> writer.write(s);writer是用socket输出流构造的OutputStreamWriter对象;writer = new OutputStreamWriter(socket.getOutputStream());

...全文
189 7 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
J_2004 2006-05-31
  • 打赏
  • 举报
回复
楼上的不行
顶!!!!!!!
crazyxp 2006-05-31
  • 打赏
  • 举报
回复
while (it.hasNext()){
key = it.next();
try{
cc = (ChatClient)chatClients.get(key);
cc.sendln(str);
}catch(Exception e){
//e.printStackTrace();
continue;
try {
cc.close();
} catch (Exception e1) {
e1.printStackTrace();

}
chatClients.remove(key);
continue;
}

}
afrag 2006-05-31
  • 打赏
  • 举报
回复
把上面的循环改成
while (true){
if (it.hasNext() == false)
{
System.out.println("it has not next element");
break;
}
key = it.next();
try{
cc = (ChatClient)chatClients.get(key);
cc.sendln(str);
}catch(Exception e){
//e.printStackTrace();
try {
cc.close();
} catch (Exception e1) {
e1.printStackTrace();

}
chatClients.remove(key);
continue;
}

}
这样来检验一下退出循环到底是因为异常还是因为Iterator中已经没有下一个元素了。
afrag 2006-05-31
  • 打赏
  • 举报
回复
我觉得应该是先确认以下变量it里面有几个内容。
有可能是抛出异常后,运行到continue语句,会继续执行循环,
但是it.hasNext()为false,当然就结束循环了啊。
wangsheng1028 2006-05-31
  • 打赏
  • 举报
回复
chatClients.remove(key);
这个也许throw out runtime exception.
具体要调试一下.
treeroot 2006-05-31
  • 打赏
  • 举报
回复
kingofworl 2006-05-31
  • 打赏
  • 举报
回复
throws Exception
这两句不写 chatClients.remove(key);
continue;
试试看
请先阅读帮助文档:http://ismyway.com/help [2009.1.1] Ver 3.2.26 如果安装提示证书过期或无法安装,请在手机上将时间改为2008.8.8,安装设置完成后再将日期改回即可! 增加天语的按键映射 增加三星的背景灯控制功能(该功能未在真机上测试过) 删除图片浏览中的部分功能,由于这部分功能需要较大的内存,导致在大部分手机上无法完成,同时也引起背景图片无法设置成功 触摸屏用户可以不再受滚动条限制,在屏幕上任意地方都可以进行拖动 选择键盘映射为其它时无法再次更改的BUG 用户输入的颜色值无法保存的BUG 修正英文单词分词时会多添加一个空行的BUG 繁体语言措词上的修正 阅读设置中增加一个“文件缓存”选项,默认情况下是开启的,在NOKIA手机上会提高UMD等文件的表现,但由于测试并不充足,如果程序经常在阅读时出错,请关闭该选项(其它手机是否开启该选项并无明显的影响) 修正编辑文件后无法保存的BUG [2008.10.27] Ver 3.2.24 如果安装提示证书过期或无法安装,请在手机上将时间改为2008.8.8,安装设置完成后再将日期改回即可! 改进的颜色选择方式 允许用户重新选择键盘映射 HTML阅读时的错误 进一步完善编辑功能(仍有少许BUG,请继续反馈,谢谢) 新建文件后自动跳转到编辑中 改进的文件操作方式,速度轻微提升 UMD速度明显提升,并且减少内存占用,特别是在NOKIA手机上,表现提升超过600% 改进的输入框模式,以使得能适应更多的手机如天语等 [2008.10.21] Ver 3.2.23 为了提高运行效率,以下功能在LITE上将被取消(自定义欢迎页问候语;欢迎页背景图) 取消了JAR的支持,提高运行效率 修正打开大ZIP文件时的内存溢出错误 ·修正:  自动滚屏到末尾时,滚屏功能将停止 [2008.10.4] Ver 3.2.22 暂时删除了播放功能及网络相关的功能,由于以上两项功能一直没有能稳定下来,故暂时删除 增强了ZIP功能,支持带文件夹结构的ZIP/JAR文件 (对于大部分JAR电子书都,可以从文件管理器中找到非.class结尾的文件,并且选择打开为UNICODE/TXT阅读) (对于NOKIA手机及其它部分手机,由于安全策略的限制,在Anyview的文件管理器中无法查看后缀为.jar的文件) 自定义问候语(系统路径下dictum.rc文件,格式参见jar包中的dictum.rc文件,保存时使用UTF-8编码,可写条目为0~9/a~z/A~Z,置空时表示不显示问候语) ·修正:  0键在各偏好中切换时亮度混乱的问题  部分手机上无法新建文件夹 [2008.9.11] Ver 3.2.21 修正动画参数无法保存的BUG 动画效果不再对阅读翻页有作用 [2008.8.29] Ver 3.2.21 可将正在阅读的内容通过短信与好友分享 增加一种新的滚屏方式:波浪,同时,阅读时3键不再使用默认的像素滚屏,而会使用最后一次使用的滚屏方式 任何可用的外置字库都可以作为内置字库存在,在jar包中存在dot.font会被当为内置字库加载 加快大文件的打开速度,特别是对于NOKIA手机,S60上,打开20M文件,97%左右的位置不超过15秒 允许用户打开动画效果 ·M600/P990/P1/W950  修正键盘映射时“内存不足”的BUG ·E680/A780  选中后台播放后无法启动的BUG [2008.7.30] Ver 3.2.20 调整部分索爱手机上背景灯控制的逻辑 修正看图片时按0键出错的BUG 旋转屏幕引起的字外出 打开LRC最后出错 阅读到尾部弹出“上一个/下一个”窗口中的文件名过长不刷新的问题 偏好切换时亮度混乱的问题 在NOKIA上,当系统路径设置为根目录是无法启动的BUG E398上可以开关键盘灯 UIQ系统在退出时可以保持亮度 索爱上按“返回”键后导致阅读出现白屏的BUG 阅读时切换屏幕方向导致字体超出屏幕的BUG 欢迎屏幕上的日期使用中文显示 如果使用触屏手机,跳转改为进度条模式,以方便触屏操作 系统路径下如果存在bg.png文件,则会作为欢迎界面的背景图片显示(右下角) 减少跳转及翻页中出现乱码的机率 提高阅读时绘图效率,滚屏效率同样提高 播放时,暂停会导致声音爆至最大的BUG 内置“忘记月亮”制作的两款主题《典雅红》《黑橙》,并且更换主题不再要求退出 文件管理器中支持“剪切”功能 文件管理器中新增转换UMD为TXT的功能(解开操作,解开2无效!) 增加了编辑功能(尽管没有限制文件大小,但请别编辑过大的文件,另外,为了提高速度,不进行全文排版,有时候表现可能会有些不习惯),以后会进一步完善 启动时,会自动识别NOKIA、SONYER
共同保存打开的图像在选项卡上。 只需单击一次,即可将保留的图像保存在标签上。 ver.2.0.0从【标签图像统一保存】中更改了名称。 1,打开要保存在“打开新标签图像”选项卡中的图像 2,点击右上角的[保存]按钮。在选项卡中打开的图像是批量下载的。 [感觉如何? ] ·用Ctrl + S保存图像的工作已经保存,只需点击一下。 ·切换从JPG,PNG,BMP,GIF格式下载的功能。 ·保存后自动关闭打开的标签的功能。 ·从查询添加的URL中正确下载图像。 ·通过静态分析功能,可以一次性保存标签中的所有图像。 ◆更新历史记录 当从版本2.9.3或更早的版本更新时,请删除可能由于设置数据迁移失败而导致问题的原因代码。       暂时对应站点显示的框架。       当静态分析选项生效时,最大图像尺寸的计算方法出现问题,因此保存与匹配图像不同的图像。       当静态分析选项生效时,修复了一个只能在某些特定站点上加载特定资源的问题。 2.9.2对应于jpeg的扩展名 (包含在jpg选项中) 2.9.1更改选项设置以保存为JSON格式。       已更新为JQuery(v3.1.1)和JQuery-UI(v1.12.1)。       修复了delayMS参数未保存的问题(v 2.9.0) 2.9.0更改为使用CSSICON显示UI。       修复了静态分析时根据制表符处理顺序进行最终检查处理的问题。       与选项卡通信未建立时,将显示错误消息。 2.2.1用jQuery.Deffered替换依赖于chrome.alarmsAPI的异步处理。       对应twitter的图片格式jpg:大 (包含在jpg选项,自动扩展替换)。       扩展了相应的查询范围(附加字符串)进行处理。       修复了即使保存失败也可能关闭标签的问题。       更改了仅对静态分析中的当前选项卡有效的规范,以覆盖所有选项卡。       不支持ECMAScript 6相应语法的以前版本的chrome已经不被支持或不推荐使用。 2.1.0添加了选项来覆盖文件名冲突上的文件。       添加了一个选项来保存与静态分析选项卡中的条件匹配的所有图像。 2.0.0更改扩展名。       将规范更改为EventPages。       Tab实现HTML的静态分析功能。       添加了静态分析的选项。       修复代码不依赖于自动分号插入(ECMAScript约定)。       当下载失败时,不关闭保存目标图像的选项卡的结构已被更正。       下载后,结果显示为[通知]。 1.1.2修复了自动关闭保存图像的选项卡状态不能恢复的错误。 1.1.1修复了目标文件夹选项中的错误。 替换1.1.0弃用的API和轻微的CSS修改。       增加了下载间隔设置(延迟)。       在Chrome设置文件夹下添加设置以创建下载图像的分发文件夹。       在选项页面上增加了工具提示。       改变了规格,即使在弹出窗口关闭的情况下,处理仍在后台继续。       警报通过选项页面[配置]按钮通知激活设置。       一旦关闭浏览器,就需要重新激活选项页面的设置,改变规格,这样就没有必要了。 1.0.0发布 支持语言:English,日本語

62,630

社区成员

发帖
与我相关
我的任务
社区描述
Java 2 Standard Edition
社区管理员
  • Java SE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧