try{ ServerSocket server = new ServerSocket(6013); Socket socket = server.accept(); PrintWriter writter = new PrintWriter(socket.getOutputStream(), true); if(args==null) return; for(int i = 0; i < args.lengh; i++){ writter.println(args[i]); } } catch(Exception e){ e.printStackTrace(); } finally{ socket.close(); server.close(); writter.close(); }
finally 块里报错了,三个变量都“ cannot be resolved ”,求问为什么~
1 LedChang 2016-03-28 17:29:06 +08:00 作用域 |
![]() | 3 spongebobsun 2016-03-28 17:37:17 +08:00 @Bryan0Z 定义在 try 外面,踹里面 new 出来干活~ |
4 SouthernGiaffe 2016-03-28 17:39:25 +08:00 先在 try 语句外部定义 socket, server, writer 并初始化,这样应该可以吧 |
![]() | 5 jint 2016-03-28 17:39:54 +08:00 via Android ServerSocket server =null; try{.......... |
![]() | 6 Bryan0Z OP |
![]() | 7 MOsky 2016-03-28 17:46:21 +08:00 用 Java8 可以让代码好看一点 try (ServerSocket server = new ServerSocket(6013); Socket socket = server.accept(); PrintWriter writter = new PrintWriter(socket.getOutputStream(), true) ){ if(args==null) return; for(int i = 0; i < args.length; i++){ writter.println(args[i]); } } catch(Exception e){ e.printStackTrace(); } |
![]() | 9 icylogic 2016-03-28 20:59:41 +08:00 ![]() 最好不要放在外面, java8 之前的 pattern 是在 finally 再 try catch ,因为 close 也会抛异常。 http://www.javapractices.com/topic/TopicAction.do?Id=25 |
![]() | 10 random2case 2016-03-28 21:19:04 +08:00 lz 看一下 这样会不会好一些 https://gist.github.com/anonymous/9c9919234592e95dc366 |
![]() | 11 random2case 2016-03-28 21:21:01 +08:00 怎么排版成了那个了 |
![]() | 13 Bryan0Z OP @random2case 代码比我的好看多了 2333 |
![]() | 14 random2case 2016-03-28 22:26:55 +08:00 @Bryan0Z 在 《 java 核心技术》上学的 。 |
![]() | 15 random2case 2016-03-28 22:34:20 +08:00 擦 真受够了 gist 了,为啥排版就是有问题,另外上面的那个貌似还是会报错 ,这样就不会了 https://gist.github.com/anonymous/435f29fa27dde3393acb |
![]() | 16 incompatible 2016-03-28 22:41:37 +08:00 |
![]() | 17 Bryan0Z OP @random2case 一直好奇为什么 github 不架提子能上, gist 死活打不开 |
![]() | 18 random2case 2016-03-29 07:52:09 +08:00 @Bryan0Z 估计 github 现在是重点监护状态,间断性丢包~ |
![]() | 19 laibin 2016-03-29 08:39:52 +08:00 if(xx!=null)xx.close(); |
20 wohenyingyu01 2016-03-29 09:19:31 +08:00 @incompatible 我怎么记得是 java8 的新特性 |
![]() | 21 Bryan0Z OP @wohenyingyu01 确实是 Java7 的 |
22 wohenyingyu01 2016-03-29 10:04:29 +08:00 @Bryan0Z 哦哦好吧 |
![]() | 23 theoractice 2016-03-29 21:38:15 +08:00 还是 c#爽啊, using 块优雅解决问题 |
![]() | 24 Bryan0Z OP @theoractice 至今没有点这个技能树,看来需要学习一下了 |
25 zcqshine 2016-04-05 18:22:15 +08:00 @theoractice java7 里的 try-with-source 一样 happy 啊, 不需要 try-catch-finally 了... |