public void read(String filename){
try {
FileInputStream in = new FileInputStream(filename);
int b;
while (true){
if (!((b=in.read())!=-1)) break;
...
}
} catch (IOException e) {
e.printStackTrace();
}
}
如果在try语句块中的任何代码抛出一个在catch字句中说明的异常类,那么
程序将跳过try语句块的其余代码
程序将执行catch字句中的处理代码
如果在try语句块中的代码没有抛出任何异常,那么程序将跳过catch子句。
二.捕获多个异常
在一个try语句块中可以捕获多个异常类型,并对不同类型的异常做出不同的处理。
try{
//code that might throw exception
}catch (FileNotFoundException e){
//emergency action for missing files
}catch (UnknownHostException e){
//emergency action for unknow hosts
}catch (IOException e){
//emergency action for all other I/O problrems
}
在Java SE 7中,同一个catch子句中可以捕获多个异常类型。例如,假设对应缺少文件和未知主机异常的动作是一样的,就可以合并catch子句
try{
//code that might throw exception
}catch (FileNotFoundException | UnknownHostException e){
//emergency action for missing files and unknow hosts
}catch (IOException e){
//emergency action for all other I/O problrems
}
}