java第五章异常处理_Java OOP——第五章 异常

如果把finally块置try...catch...语句后,finally块一般都会得到执行,它相当于一个万能的保险,即使前面的try块发生异常,而又没有对应异常的catch块,finally块将马上执行。

以下情形,finally块将不会被执行:

1、finally块中发生了异常;

2、程序所在的线程死亡;

3、在前面的代码中用了System.exit();//中断程序,退出Java虚拟机

4、关闭CPU

//异常示例

import java.io.*;

import java.net.*;

public class Demo148 {

public static void main(String[] args) {

FileReader fr=null;

//检查异常

//1、打开不存在的文件

//FileReader fr=new FileReader("d:\\aa.txt");

try {                       //使用try{}catch(Exception e){}将可能出错的程序放入到里面,当出错时会有相应提示,便于解决bug

//在出现异常的地方就终止执行代码,然后直接进入到catch语句

//如里有多个catch语句,则进入匹配异常的catch语句输入出信息

fr=new FileReader("d:\\aa.txt");

//System.exit(-1);       //使用System.exit()后finally语句块不再执行

Socket s=new Socket("192.168.1.1",21);

} catch (FileNotFoundException e) {//catch(Exception e)捕获所有错误信息,为了方便一般使用此方法来捕获所有错误信息

// 把异常的信息输出,利于排除bug

//e.getMessage();

System.out.println("文件不存在:"+e.getMessage());//.getMessage()不如.printStackTrace()

//e.printStackTrace();        //输出bug信息

//处理

} catch (IOException e2){//UnknownHostException

e2.printStackTrace();

} finally {

//try..catch..语句块中不管出没出现异常,一般都会执行finally语句块

//一般说,把需要关闭的资源。如[文件]、[链接]、[内存]...

System.out.println("测试进入finally语句块");

if(fr!=null){

try {

fr.close();

} catch (Exception e) {

e.printStackTrace();

}

}

}

System.out.println("OK1");

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值