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();
}
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 2
最好不要放在外面, 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 了...
|