JAVA代码异常处理

在编写Java代码的时候,有那么一些代码是有可能会有异常的,处理异常无非就两种方式

要么show声明出去,要么用try catch语句

这篇文章我们就来说一下不同JDK版本的异常处理方法(高兼容低)

 

JDK7以前的异常处理方法

JDK7以前的写法:

格式:

try{

可能会产出异常的代码

}catch( 常类变量变量名){

异常的处理逻辑

}

代码实现如下:

 

try{

//可能会产出异常的代码

fw = new Filevriter( "w:\109IOAndProperties\\g.txt",true);

for (int i = 0;i <1 0;i++) {

fw.write("Helloworld"+i+"r\n");

}  

}catch(IOException e){

//异常的处理逻辑

System.out.printin(e);

}finaily {

//一定会执行的代码

//创建对象失败了,fi的默认值韩是nulL, null是不能调用方法的,会抛出Null //PointerException,需要增加一个判断,不是null资源释放掉

if(fw != null){

//fw.close方法声明抛出了1OException异常对象,所以我们就的处理这个异常对象,要么//throws,要么try catch

try{

fw.close();

}catch (IOException e) {

e.printstackTrace();

}

}

 

 

JDK7的异常处理方法

JDK7的特性

在try的后边可以增加一个(),在括号中可以定义流对象那么这个流对家的作用域就在try中有效try中的代码执行完毕,会自动把流对象释放,不用写finally

格式:

try(定义流对象;定义流.象...){

可能会产出异常的代码

}catch( 常类变量变量名){

异常的处理逻辑

}

代码实现如下:

try(

//1.创建一个字节输入流对象,构造方法中绑定要读取的数据源

FileInputStream fis = new FileinputStream("c:\\1.jpg");

//2.创建一个字节输出流对象,构造方法中绑定要写入的目的地

FileoutputStream fos = new Filedutputstream("d:\\1.jpg");){

//可能会产出异常的代码

//一次读取一个字节写入一个字节的方式

//3.使用字节输入流对象中的方法read读取文件

int len = 0;

whilec(len = fis.read())!=-1){

//4,使用字节输出流中的方法write,把读取到的字节与入到目的地的文件中

fos.write(len);

}

}catch (IOException e){

//异常的处理逻辑

System.out.printIn(e);

}

 

JDK9的异常处理方法

JDK9的新特性

try的前边可以定义流对象

在try后边的()中可以直接引入流对象的名称(变量名)

在try代码执行完毕之后,流对象也可以释放掉,不用写finally

格式:

A a = nei A();

Bb = new B();

try(a, b) {

可能会产出异常的代码

}catch(异常类变量变量名){

常的处理逻辑

}

代码实现如下:

//1,创建一个字节输入流对象,构造方法中绑定要读取的数据源

FileInputstream fis -new FileInputstream( "c:\\1.jpg");

//2,创建一个字节输出流对象,构造方法中绑定要写入的目的地

Fileoutputstream fos = new Fileoutputstream( "d:\\1.jpg");

try(fis;fos){

//一次读取一个字节写入一个字节的方式

//3.使用字节输入流对象中的方法read读取文件

int len = 0;

while((len = fis.read())!=-1){

//4,使用字节输出流中的方法write,把读取到的字节写入到目的地的文件中

fos.write(1en);

}

}catch (IOException e){

System.out.printin(e);

}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值