【异常-举例6:finally】
finally 的特点 被 finally 控制的语句体一定会执行 特殊情况:在执行到 finally 之前 jvm 退出了(比如 System.exit(0)) finally 的作用 用于释放资源,在 IO 流操作和数据库操作中会见到 final,finally 和 finalize 的区别: final:最终的意思,可以修饰类,成员变量,成员方法 修饰类,类不能被继承 修饰变量,变量是常量 修饰方法,方法不能被重写 finally:是异常处理的一部分,用于释放资源。 一般来说,代码肯定会执行,特殊情况:在执行到 finally 之前 jvm 退出了 finalize:是 Object 类的一个方法,用于垃圾回收 如果 catch 里面有return 语句,请问 finally 的代码还会执行吗?如果会,请问是在 return 前还是 return 后?会执行。前。准确的说,应该是在中间。 try...catch...finally 的格式变形 A:try...catch...finally B:try...catch C:try...catch...catch... D:try...catch...catch...finally E:try...finally 这种做法的目前是为了释放资源。
package com.test; import java.text.ParseException; import java.text.SimpleDateFormat; import java.util.Date; /** * @author shusheng * @description * @Email shusheng@yiji.com * @date 2018/10/10 16:10 */ public class FinallyDemo { /** *finally:被 finally 控制的语句体一定会执行 *注意:如果在执行到 finally 之前 jvm 退出了,就不能执行了。 * *A:格式 *try...catch...finally... *B:用于释放资源,在 IO 流操作和数据库操作中会见到 */ public static void main(String[] args) { String s = "2014-11-20"; SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss"); Date d = null; try { d = sdf.parse(s); } catch (ParseException e) { e.printStackTrace(); //System.exit(0); 如果有这条语句就不执行 finally 语句 } finally { System.out.println("这里的代码是可以执行的"); } System.out.println(d); } }
终身学习者