1.异常对象处理完之后会怎样:
异常处理对象在异常处理完后,没有引用指向它,变成了不可达对象,Exception对象会在下一个垃圾回收过程中被回收掉。
它将在接下来JVM进行gc操作时被标记为”不可达”,如果该Exception实例实现了finalize方法,那么就会安排到F-queue队列中等待执行finalize方法。
(但是由于F-queue所在线程的优先级很低,所以可能一直得不到执行,而长时间留在该队列中)下一次执行gc时,
如果Exception对象已经执行完成finalize方法,它将被回收(彻底抹去内存中的数据)。
2.finalize()方法:
finalize是Object类的一个方法,该方法在Object类中声明:
finalize()方法是Object的方法,用于标记该对象可以被JVM垃圾回收器回收。
注意:一旦垃圾回收器准备释放某个对象占用的空间,将首先调用该对象的finalize()方法,
并且在下一次垃圾回收动作发生时,才真正将该对象占用的内存回收。
3.如何自定义异常:
在程序中使用自定义异常类,大体可分为以下几个步骤:
(1)创建自定义异常类。
(2)在方法中通过throw关键字抛出异常对象。
(3)如果在当前抛出异常的方法中处理异常,可以使用try-catch语句捕获并处理;否则在方法的声明处通过throws关键字指明要抛出给方法调用者的异常,继续进行下一步操作。
(4)在出现异常方法的调用者中捕获并处理异常。
创建自定义异常需要做到以下四点:
(1)类名要见名知意,
(2)需要继承自Exception,
(3)定义Exception中定义的各种构造方法,
(4)提供序列化版本号,因为Exception实现了序列化接口。
Original: https://www.cnblogs.com/pfzhang18/p/16115572.html
Author: 2022年总冠军gogogo
Title: java_异常机制(二)
原创文章受到原创版权保护。转载请注明出处:https://www.johngo689.com/571239/
转载文章受原作者版权保护。转载请注明原作者出处!