为啥我不能在 finally 语句里关闭 Socket?

2016-03-28 17:26:52 +08:00
 Bryan0Z
	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 ”,求问为什么~

4279 次点击
所在节点    Java
25 条回复
Bryan0Z
2016-03-29 09:40:37 +08:00
@wohenyingyu01 确实是 Java7 的
wohenyingyu01
2016-03-29 10:04:29 +08:00
@Bryan0Z 哦哦好吧
theoractice
2016-03-29 21:38:15 +08:00
还是 c#爽啊, using 块优雅解决问题
Bryan0Z
2016-03-29 23:13:53 +08:00
@theoractice 至今没有点这个技能树,看来需要学习一下了
zcqshine
2016-04-05 18:22:15 +08:00
@theoractice java7 里的 try-with-source 一样 happy 啊, 不需要 try-catch-finally 了...

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/266898

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX