try,catch和finally的作用结果

本文详细探讨了finally语句在程序中的执行机制,包括其在try、catch和return语句中的作用顺序,以及如何影响程序的返回值。特别强调了当finally包含return时的特殊行为。

1.如果程序是从try代码块或者catch代码块中返回时,finally中的代码总会执行。而且finally语句在return语句执行之后return返回之前执行的。
2.当finally有返回值(return)时,会直接返回。不会再去返回try或者catch中的返回值。
3.如果try和catch的return是一个变量时且函数的是从其中一个返回时,后面finally中语句即使有对返回的变量进行赋值的操作时,也不会影响返回的值。

转:https://blog.youkuaiyun.com/jdfk423/article/details/80406297

### Java中异常处理机制final关键字的作用区别 #### 异常处理机制(try-catch-finally) Java中的异常处理机制用于处理程序运行时可能出现的错误,以确保程序的稳定性可靠性。异常处理主要由`try`、`catch``finally`三个关键字组成。 - **try**:用于包裹可能会抛出异常的代码块。如果在`try`代码块中发生异常,程序会跳转到匹配的`catch`块。 - **catch**:用于捕获并处理`try`代码块中抛出的异常。可以有多个`catch`块来处理不同类型的异常。 - **finally**:无论是否发生异常,`finally`块中的代码都会被执行。这通常用于释放资源,如关闭文件流或网络连接[^1]。 例如,在文件读取操作中,即使发生异常,`finally`块仍然可以确保文件流被正确关闭: ```java FileInputStream fis = null; try { fis = new FileInputStream("D:\\123.txt"); // 读取文件操作 } catch (IOException e) { e.printStackTrace(); } finally { if (fis != null) { try { fis.close(); } catch (IOException e) { e.printStackTrace(); } } } ``` #### final关键字的作用 `final`关键字在Java中有多种用途,具体取决于它修饰的对象: 1. **final类**:一个类被声明为`final`后,它将不能被继承。例如: ```java public final class FinalClass { // 类内容 } ``` `FinalClass`不能被其他类继承[^3]。 2. **final方法**:一个方法被声明为`final`后,它将不能被子类重写。例如: ```java public class ParentClass { public final void finalMethod() { // 方法内容 } } ``` 子类不能重写`finalMethod`方法[^3]。 3. **final变量**:一个变量被声明为`final`后,它的值只能被赋值一次。例如: ```java final int FINAL_VARIABLE = 10; ``` `FINAL_VARIABLE`的值一旦被赋值,就不能再改变[^3]。 #### 区别总结 - **异常处理机制(try-catch-finally)**:主要用于处理程序运行时的异常情况,确保程序的健壮性资源的正确释放。`finally`块中的代码无论是否发生异常都会执行,通常用于释放资源。 - **final关键字**:主要用于限制类、方法变量的行为。`final`类不能被继承,`final`方法不能被重写,`final`变量只能被赋值一次。 通过合理使用异常处理机制`final`关键字,可以编写出更加健壮安全的Java程序。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值