3IO异常处理方式

IO异常处理
public static void main(String[] args) {
FileWriter f = null;
try {
f = new FileWriter("demo2.txt");
} catch (IOException e) {
e.printStackTrace();
}
try {
f.write("as");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
try {
f.close();
} catch (IOException e) {
e.printStackTrace();
}
}
// 不合理的处理方式,当抛出异常进入catch块后会继续向下执行

合理的处理方式
try {
FileWriter f = new FileWriter("demo2.txt");
f.write("as");
f.close();
} catch (IOException e) {
e.printStackTrace();
}
然而资源一定要关闭
FileWriter f = null;// 在外边建立引用,在try内处理异常
try {
f = new FileWriter("k:\\demo2.txt");//winodws 转移字符\\需要写两个
f.write("as");

} catch (IOException e) {
e.printStackTrace();
} finally {
try{
f.close();//单独try
} catch(Exception e) {
e.printStackTrace();
}
}

java.io.FileNotFoundException: k:\demo2.txt (系统找不到指定的路径。)
at java.io.FileOutputStream.open(Native Method)
at java.io.FileOutputStream.<init>(FileOutputStream.java:221)
at java.io.FileOutputStream.<init>(FileOutputStream.java:110)
at java.io.FileWriter.<init>(FileWriter.java:63)
at test.io.FileWriterDemo2.main(FileWriterDemo2.java:19)
Exception in thread "main" java.lang.NullPointerException
at test.io.FileWriterDemo2.main(FileWriterDemo2.java:26)
因为都创建失败了,f为空,则调用f.close NullPointException;
finally 优化:
finally {
try{
if(f != null) {
f.close();
}
}catch(IOException e) {
e.printStackTrace();
}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值