java – 如何在捕获IOException时关闭ServerSocket连接?
发布时间:2020-12-15 05:19:58 所属栏目:Java 来源:网络整理
导读:对不起,问题,但我在 Java中完全是noob.从ServerSocket捕获IOException时执行ServerSocket.close()的最佳做法是什么?根据文档,ServerSocket.close()抛出IOException,编译器要求我们捕获它.在IOException上关闭连接的正确方法是什么? try { server = new Ser
对不起,问题,但我在
Java中完全是noob.从ServerSocket捕获IOException时执行ServerSocket.close()的最佳做法是什么?根据文档,ServerSocket.close()抛出IOException,编译器要求我们捕获它.在IOException上关闭连接的正确方法是什么?
try { server = new ServerSocket(this.getServerPort()); while(true) { socket = server.accept(); new Handler( socket ); } } catch (IOException e) { if (server != null && !server.isClosed()) { server.close(); //compiler do not allow me to do because I should catch IOExceoption from this method also... } } 谢谢! 解决方法
这在Java中很难看.我讨厌它,但这是你应该这样做的方式:将它包装成另一个try-catch:
try { server = new ServerSocket(this.getServerPort()); while(true) { socket = server.accept(); new Handler( socket ); } } catch (IOException e) { if (server != null && !server.isClosed()) { try { server.close(); } catch (IOException e) { e.printStackTrace(System.err); } } } (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |