关于try catch finally中的一些问题

在try catch finally语句块中,catch是可以写很多或者不写的。

每一个catch语句块可以处理一个特定的异常,它会按照你catch的顺序去处理异常,如果找到了相匹配的异常则进行处理,如果没有找到则继续像上一层抛出,如果没有上一层则向调用者抛出,从而终止项目运行。

如果没有catch语句块,则一直向上一层抛出异常,或者终止程序运行。

关于try catch中的return

在java中,如果在try中有return语句,那么在catch或者finally中也至少有一个return语句,因为在try语句块中是假定代码发生异常,而如果代码发生异常之后就会跳过return语句,直接进入catch。而为了确保函数具有返回值,java强制要求原则。

return语句的优先级低于finally,为了确保只有一个返回值,则会返回优先级最大的值。

关于finally

finally有且只能有一个,也可以不写,在try catch finally中无论是否有异常都会运行finally中的代码,即使你在try或者catch中使用了return语句,在返回之前,finally总是要被执行的。这样有便于你在抛出异常之后做一些清理工作。而在没有catch语句块是,finally是必须存在的。 



最后说一下我对try catch finally的理解:

是一种非常好用的异常处理机制,对性能方面的影响也不大。抛出的异常简单明了,方便开发人员解决问题。

但是也不可以乱用,比如说一个简单的异常不去处理而是抛给try catch,用try catch隐藏不应该隐藏的异常。在该使用try catch的地方不使用而导致整个程序崩溃。

try catch本身是没有任何问题的,只是看开发者如何去使用。


以上就是我在使用try catch  finally的过程中遇到的一些问题。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值