黑马程序员技术交流社区

标题: 有关异常处理中finally [打印本页]

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

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


作者: hoyouly    时间: 2013-8-15 18:57
try{
}catch{


}finally{

}

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

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

1.png





欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2