Java中抓捕异常的方法
1.一个try对应一个catch
try{
方法体;
}catch{
(单个异常)
异常处理;
}
2.一个try对应多个catch
try{
方法体;
} catch{
异常一;
异常处理;
}catch{
异常二;
异常处理;
}
3.try...catch...finally(finally里面的代码一定执行)
try{
方法体;
}catch{
异常处理;
}finally{
释放资源(一般指释放流和数据库资源);
}
4.try...finally(直接释放资源)
try{
方法体;
}finally{
释放资源;
}
/**5.try(){}...catch{} (JDK1.7以后直接释放资源)**/
public class Demo {
public static void main(String[] args) {
//1.创建当前字符缓冲输入流对象
//JDK1.7以后直接释放资源
//参数是一个字节输入流的对象
try(BufferedInputStream bis=
new BufferedInputStream(
new FileInputStream("src/com/qianfeng/Day/Demo.java"))){
//2.属于那个类型的流
/*
* 数组是填充 不是 覆盖 实际读取长度来获取真正 的数据
*/
//添加标记 -->印戳 在此输入流添加当前标记添加一个位置(当前在哪个位置重新开始读取)
byte[] b=new byte[1024];
int len;
while((len=bis.read(b))!=-1){
System.out.println(new String(b,0,len));
}
}catch(IOException e){
System.out.println(e.getMessage());
}
}
}
public static void main(String[] args) {
//1.创建当前字符缓冲输入流对象
//JDK1.7以后直接释放资源
//参数是一个字节输入流的对象
try(BufferedInputStream bis=
new BufferedInputStream(
new FileInputStream("src/com/qianfeng/Day/Demo.java"))){
//2.属于那个类型的流
/*
* 数组是填充 不是 覆盖 实际读取长度来获取真正 的数据
*/
//添加标记 -->印戳 在此输入流添加当前标记添加一个位置(当前在哪个位置重新开始读取)
byte[] b=new byte[1024];
int len;
while((len=bis.read(b))!=-1){
System.out.println(new String(b,0,len));
}
}catch(IOException e){
System.out.println(e.getMessage());
}
}
}