java try(...){ ...} catch(...){...}里try后面()内放的是什么?

import java.io.*;
public class ByteReader{
public static void main(String[] args) {
try( FileInputStream file=new FileInputStream("sagve.gif");
){//------------------就是这里----------------
int count =0;
boolean eof=false;
while(!eof){
int input=file.read();
System.out.print(input+" ");
if(input==-1)
eof=true;
else
count++;
}
file.close();
System.out.println("\nBytes read: "+count);
}catch (IOException e){
System.out.println("Error -- "+e.toString());
}
}
}
try()内放的是神马?boolean类型还是什么错误之类的?
FileInputStream file=new FileInputStream("sagve.gif");干嘛放在"try("和")"之间?
比try{
FileInputStream file=new FileInputStream("sagve.gif");
....
}catch(...){。。。。
}有优越性吗?

try里就是你要跑的程序,如果try里的一段程序出现异常了,就会被catch捕捉住,进行catch里的操作。
你上面那段有IO操作,万一文件不能读写之类的就会报异常,catch 住了就会跑打印异常"Error -- "+e.toString()
温馨提示:内容为网友见解,仅供参考
第1个回答  2013-10-30
try(这里面是放会出异常的代码)FileInputStream file=new FileInputStream("sagve.gif");放在try里面是因为它有可能会出现异常 boolean基本数据类型中的一种,不是什么错误。它跟其他基本数据类型的不同点是,它只有2个值,true or false 。
第2个回答  推荐于2017-04-22
是 Java 7 的新特性,叫做自动资源释放,可以看 @红薯 之前的文章
http://www.oschina.net/question/12_10706本回答被提问者采纳
第3个回答  2013-10-30
这时有关异常的处理问题。
首先你要明白java中的异常体系,包括2个方面:
1,误。
, 2, 异常:运行时的异常;非运行时的异常。

如果是运行时的异常,可以处理也可以不进行处理。
如果是非运行时的异常,则必须进行处理。

处理异常有2中方式:
1,直接进异常抛出,就是通过关键字throws来实现。
2,通过try{}catch(){}finally{}语句块来进行处理。本回答被网友采纳
相似回答