为什么要用try catch不建议用 try catch

1137被浏览192262分享邀请回答51 条评论分享收藏感谢收起1137被浏览192262分享邀请回答try {
while (true) {
} catch (IndexOutOfBoundsException e) {
这是一个非常明显的错误,希望通过异常来中断循环而达到某种优化.其实不然.JVM对异常的块中的代码几乎不做优化.而且创建、抛出、捕获异常都是十分昂贵的正常的遍历数组并不会造成冗余的边界检查,现代的JVM会做出优化避免不必要的使用被检查的异常
“被检查的异常”是Java语言的一个很好的特性。与返回代码不同,"被检查的异常"会强迫程序员处理例外的条件,大大提高了程序的可靠性。 
但是,过分使用被检查异常会使API用起来非常不方便。如果一个方法抛出一个或多个被检查的异常,那么调用该方法的代码则必须在一个或多个catch语句块中处理这些异常,或者必须通过throws声明抛出这些异常。 无论是通过catch处理,还是通过throws声明抛出,都给程序员添加了不可忽略的负担。
适用于"被检查的异常"必须同时满足两个条件:第一,即使正确使用API并不能阻止异常条件的发生。第二,一旦产生了异常,使用API的程序员可以采取有用的动作对程序进行处理。 不要忽略异常
有些程序员会写出下面的代码try {
} catch (SomeException e) {
  空的catch块会使异常达不到应有的目的,异常的目的是强迫你处理不正常的条件。忽略一个异常,就如同忽略一个火警信号一样 -- 若把火警信号器关闭了,那么当真正的火灾发生时,就没有人看到火警信号了。所以,至少catch块应该包含一条说明,用来解释为什么忽略这个异常是合适的。
所以,不是不建议使用try catch,而是如何能正确的使用try catch61 条评论分享收藏感谢收起1137被浏览192262分享邀请回答101 条评论分享收藏感谢收起try和catch中的一个出现,另一个必须出现吗,为什么? - ITeye问答
try和catch中的一个出现,另一个必须出现吗,为什么?
采纳的答案
try出现可以不用catch,有finally也行
1.
finally
{
}
可以,但必须跟finally.也就是catch和finally必须跟其中一个,反正能捕获异常就OK
try {
}finally {
}
这样没问题,而且,可不是没有意义,因为这样可以保证即使发生了异常,finally里面的代码一定会被执行。
有时候,这个还是非常有用的。
比如可以用来释放一些自己占用的资源,然后让调用者处理异常。
try ... catch 的目的是解决程序在出现错误时无法继续执行下去的问题。
try -- 意思是 “试一试”
catch --& 意思是 “抓”,抓一抓。
没有错,就抓不到错。有错才能抓到并处理。
已解决问题
未解决问题}

我要回帖

更多关于 c try catch 用法 的文章

更多推荐

版权声明:文章内容来源于网络,版权归原作者所有,如有侵权请点击这里与我们联系,我们将及时删除。

点击添加站长微信