日期:2014-05-20  浏览次数:20694 次

try catch finally的问题
异常处理方面

如果try   后面没有跟   catch     跟的是   finally   会出现   异常丢失?

try   catch   finally     什么情况会出现下异常丢失    


try   是捕获异常  
catch   是处理异常

finally   到底用来做什么的   书上说的有乱   我不太明白

------解决方案--------------------
finally是无论是否出现异常都会执行的代码
------解决方案--------------------
不管异常有没有catch,finally中得代码都会被执行
------解决方案--------------------
在你的程序里面不管有没有catch,finally都会在你的try语句里面的return之前执行
------解决方案--------------------
try {
...... //可能出现异常的代码块,放在try语句块中(捕获异常)
...... //如连接数据库时,可能出现连接不上数据库的异常
......
} catch ( Type_Exception e) {
......//对出现异常(捕获到try抛出的异常)进行处理的语句放在catch块中
......//如当连接不上数据库时,要对这一异常进行处理,可以抛处异常给客户端,
......//也可以继续连接数据库操作
} finally {
......//不管是否出现异常,程序都回执行这个代码块的语句,改处一般是释放资源用的
......//如释放数据库连接等
......
}


try后面必须至少跟一个catch块,用来捕获try中可能抛出的异常,捕获的异常可以处理(写上处理代码),也可以不处理(catch块中无任何代码),但是所捕获的异常必须包含try中可能出现的所有类型,否则就会报异常没有处理的错误.对于finally语句块,可有可无.根据需要.
------解决方案--------------------
finally里的代码都会被执行,
不论是否已有catch语句被执行。。。。。。
------解决方案--------------------
详细
------解决方案--------------------
to:yanhuaxie(IT Farmer)
finally 块不是可有可无的,不要误导新手
有些异常是提交到函数调用者那层进行catch的,这个时候finally的作用就出来了,在函数返回前作资源释放
------解决方案--------------------
finally后面的语句也不是总是执行,当前面有system.exit() 方法时, finally里面的语句就不会被执行

------解决方案--------------------
to :skywoodsky()

是我没有说清楚,我说的finally块可有可无,并不是只具体的业务逻辑需要,而只是对java的语法而言的,try语句后必须有catch块,但是对与finally块,则没有规定.即try后可以有finally块也可以没有.

不过还是谢谢你能提出来!以后一定会注意!



------解决方案--------------------
to yanhuaxie(IT Farmer)
try
{
}
finally
{
}
语法上仍然成立