c# 异常处理finally存在的必要性

C#为什么要要有finally块?将finally块的内容写在异常处理块之外,不是同样可以实现相同的功能吗?(如果没异常或是有异常被接住,finally和异常处理块外的语句都会执行;如果有异常没被接住,finally和异常处理块外的语句都不会执行,程序出错)所以我觉得finally没必要。谁能说服我?

另,C++为什么没finally?本人对C++并不十分了解和感兴趣,这问题大概回答一下就行。

回答的好的会追加分的!!!
对异常处理的简单介绍就不用了,这个我知道。

如果发生异常没有catch的话会被抛到上一级去处理,如果没有finally,这一级的资源就不好释放了
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-03-11
finally块是因某些异常特殊需要而提供,如我们最常见的
数据库异常
try{
con.open();//打开数据库链接
com.Exe......//在此如果出现异常,con.close();不会执行了,将会执行
con.close();
}
catch{
....//异常处理代码
}
finally{
con.close();//最终关闭链接
}
第2个回答  2010-03-11
你说有了if then 为什么要有 a>b?a:b这样的写法?
当然是为了方便啦
你正常也要关闭资源,异常也要关闭资源,你的想法没错,可以分开都写,这没问题,但是把你要写的语句放到finally里面,只写一次,不是更好么? 又方便修改,又节省字数,还利于欣赏,好处多多啊

c#是集c和java之长的语言 当然比c会多很多他没有的东西了 反正你也没兴趣 就不多说了
第3个回答  2010-03-11
finally块可以实现异常安全,保证该块代码即使是出了异常也可以被完全执行
相似回答