A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 你懂得 中级黑马   /  2013-8-15 12:45  /  1887 人查看  /  6 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

2黑马币
跪求异常处理机制中finally的用法?

评分

参与人数 1技术分 +1 收起 理由
张智文 + 1 祝你好运

查看全部评分

6 个回复

倒序浏览
finally表示总是被执行,有些特定情况下,不管是否有异常发生,总是要求某些特定的代码必须被执行,就用到finally
回复 使用道具 举报
finally总是被执行,不管是否有异常发生,总是要求某些特定的代码必须被执行,就用到finally,它一般用来关闭一些关闭的资源,如数据库等
try{
}catch{
}finally{
总会执行的代码
}
回复 使用道具 举报
IO中的一些流对象例如字符 FileWriter,FileReader 字节流  InputStream,OutputStream等
Socket网络编程中的Socket服务, 数据库访问后需要关闭连接操作等,涉及到一些系统资源的对象(即在程序设计中你认为必须要执行和处理的代码)就放到finally{}执行。
回复 使用道具 举报
异常中的finally{ 。。。},指这里面的代码一定会被执行。只有当前面有exit(0)时,就是退出虚拟机了,才执行不到。记住这个原理。毕老师在他异常处理finally那节说的很清楚了,去温习下就知道了。
回复 使用道具 举报
本帖最后由 sunriselzz 于 2013-8-15 18:20 编辑

异常处理
try{ 需要检测的代码;}
        catch(异常类  变量){ 异常处理代码;}
        finally{ 一定会执行的代码;}
        Finally代码块只有一种情况不会被执行。就是在之前执行了System.exit(0)。
        执行了System.exit(0),就直接退出了虚拟机,程序当然不能再继续往下执行了
        处理过程:Try中检测到异常会将异常对象传递给catch,catch捕获到异常进行处理。
        Finally里通常用来关闭资源。比如:数据库资源,IO资源等。
       finally块不能单独使用,必须始终与try块在一起

回复 使用道具 举报
try{
}catch{


}finally{

}

这个是一个捕获异常的语句,在一个程序中,try{}和catch{}这个两个代码块只可能有一个得到允许,但是finally{}这个代码块确是必须要执行的。
我给你画了个简单的图
画的不太好,能说明问题就行,要想从A点到B点,(这个就相当于程序运行),要么你通过try{} 这条线路,即程序正常运行,没有出现什么异常,要么就通过catch{}  这条线路,即有异常发送,但是不管你走哪条线路,都必须通过finally{}这条才能到达B点,
不知道我这样解释你能明白不。

1.png (3.79 KB, 下载次数: 21)

1.png
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马