java_异常机制(二)

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/

转载文章受原作者版权保护。转载请注明原作者出处!

(0)

大家都在看

  • docker进阶

    Docker Compose Docker DockerFile build run 手动操作,单个容器 微服务,100个微服务,依赖关系 Docker Compose来轻松高效的…

    Java 2023年6月9日
    0165
  • OpenFeign

    Feign 是一个声明式 WebService 客户端。使用 Feign 能让编写 Web Service 客户端更加简单。 它的使用方法是定义一个服务接口然后在上面添加注解。Fe…

    Java 2023年6月8日
    069
  • AVL树到底是什么?

    一. 什么是AVL树 在认识AVL树之前我们先认识一下什么是二叉搜索树: 1.二叉搜索树 二叉搜索树又称为二叉排序树,二叉搜索树满足所有的左孩子节点都小于其根节点的值,所有的右孩子…

    Java 2023年5月29日
    077
  • springboot小结

    创建一个SpringBoot项目 创建项目注意点 然后选中自己需要的依赖 不过后期还可以自己导入不过比较麻烦 分析各种包 不过的文件夹需要自己建 图标写成这样放到public下面就…

    Java 2023年6月7日
    096
  • Node.js(二)express

    const express=require("express"); const path=require("path"); const lo…

    Java 2023年6月15日
    092
  • 线程同步的情景之一

    从本篇文章开始,我将陆续介绍多线程中会遇到的三种情况。 情景一:此茅坑有主了 大锤:”我擦,居然一个茅坑有两个人在用。” 大锤:”啊,忍不住了,…

    Java 2023年5月30日
    071
  • Hexo博客系列(三)-将Hexo v3.x个人博客发布到GitLab Pages

    【原文链接】:https://blog.tecchen.xyz ,博文同步发布到博客园。由于精力有限,对文章的更新可能不能及时同步,请点击上面的原文链接访问最新内容。欢迎访问我的个…

    Java 2023年6月6日
    0109
  • C# 多线程详解 Part.02(UI 线程和子线程的互动、ProgressBar 的异步调用)

    我们先来看一段运行时会抛出 InvalidOperationException 异常的代码段: 微软在子线程修改 UI 线程的控件值时给出的安全限制方案为: 在 VS2005 或者…

    Java 2023年5月29日
    081
  • JAVA 中 string 和 int 互相转化 1、 int i = Integer.parseInt([String]); 或 i = Integer.parseInt([String],[int radix]); 2、 int i = Integer.valueOf(my_str).intValue();

    在实际开发工作中,有时候为因为一些特殊原因,做类型转换,今天说一下string类型和int类型之间的转换。 1 如何将字串 String 转换成整数 int? A. 有两个方法: …

    Java 2023年5月29日
    053
  • 如何用阿里云ECS搭建网站

    欢迎访问我的押韵精灵,是一个在线查询押韵的诗、词、歌、字的工具网站,包含双押多押等。 本文记录下如何在阿里云上搭建该网站。 选型 现在利用云计算的能力,个人或者小型企业都能快速的搭…

    Java 2023年6月5日
    075
  • Java-Security(二):如何初始化springSecurityFilterChain(FilterChainProxy)

    上一篇文章中,接触了Spring Security并写了一个简单的实例,初次接触毕竟我们对它还不是特别熟悉。我比较好奇的问题包含两处: 1)配置在web.xml配置的springS…

    Java 2023年5月29日
    051
  • Docker实用篇

    404. 抱歉,您访问的资源不存在。 可能是网址有误,或者对应的内容被删除,或者处于私有状态。 代码改变世界,联系邮箱 contact@cnblogs.com 园子的商业化努力-困…

    Java 2023年6月13日
    070
  • Elasticsearch Java API的基本使用

    在明确了ES的基本概念和使用方法后,我们来学习如何使用ES的Java API. 本文假设你已经对ES的基本概念已经有了一个比较全面的认识。 客户端 你可以用Java客户端做很多事情…

    Java 2023年5月29日
    057
  • SpringBoot 源码解析 (三)—– Spring Boot 精髓:启动时初始化数据

    在我们用 springboot 搭建项目的时候,有时候会碰到在项目启动时初始化一些操作的需求 ,针对这种需求 spring boot为我们提供了以下几种方案供我们选择: <s…

    Java 2023年5月29日
    078
  • 【力扣】82. 删除排序链表中的重复元素 II

    存在一个按升序排列的链表,给你这个链表的头节点 head ,请你删除链表中所有存在数字重复情况的节点,只保留原始链表中 没有重复出现 的数字。返回同样按升序排列的结果链表。 示例 …

    Java 2023年6月8日
    0108
  • Mybatis源码4 Cache的实现和其原理

    Mybatis CachingExecutor, 二级缓存,缓存的实现 一丶二级缓存概述 上一章节,我们知道mybaits在构造SqlSession的时候,需要让SqlSessio…

    Java 2023年6月14日
    064
亲爱的 Coder【最近整理,可免费获取】👉 最新必读书单  | 👏 面试题下载  | 🌎 免费的AI知识星球