Java异常知识点总结

2023-11-09

Java异常知识点总结

1. 异常处理机制主要回答了三个问题: What,Where,Why

  • What:异常类型回答了什么被抛出
  • Where:异常堆栈跟踪回答了在哪抛出
  • Why:异常信息回答了为什么被抛出

2. Java异常体系

img

  • RuntimeException(运行时异常) : 不可预知的,程序应当自行避免;
  • (非RuntimeException)编译时异常 : 可预知的且编译器会做检查;

3. 从概念角度解析Java的异常处理机制

  • Error : 程序无法处理的系统错误,编译器不做检查;
  • Exception : 程序可以处理的异常,捕获后可能会被修复;
  • 总结 : 前者是程序无法处理的错误,后者是可以处理的异常;

4.从责任角度来看

  • Error属于JVM需要负担的责任

  • RuntimeException是程序应该负担的责任;

  • Checkd Exception可检查异常是Java编译器应该负担的责任

5. 常见Error以及Exception

  • RuntimeException(运行时异常)
    1. NullPointerException-空指针引用异常
    2. ClassCastException-类型强制转换异常
    3. IllegalArgumentException-传递非法参数异常
    4. IndexOutOfBoundsException-下标越界异常
    5. NumberFormatException-数字格式异常
  • 非RuntimeException(编译时异常)
    1. ClassNotFoundException-找不到指定class的异常
    2. IOException-IO操作异常
  • Error
    1. NoClassDefFoundError-找不到class定义的异常
    2. StackOverfloweError-深递归导致被耗尽而抛出的异常
    3. OutOfMemoryError-内存溢出异常

6. Java的异常处理机制

  • 抛出异常:创建异常对象,交由运行时系统处理
  • 捕获异常:寻找合适的异常处理器异常,否则终止运行

7. Java异常的处理原则

  • 具体明确:抛出的异常应能通过异常类名和message准确说明异常的类型和产生异常的原因;
  • 提早抛出:应尽可能早的发现并抛出异常,便于精确定位问题;
  • 延迟捕获:异常的捕获和处理应尽可能延迟,让掌握更多信息的作用域来处理异常。

8. 高效主流的异常处理框架

在用户看来,应用系统发生的所有异常都是应用系统内部的异常

  • 设计一个通用的继承自RuntimeException的异常来统一处理

  • 其余异常都统一转译为上诉异常AppException

  • 在Catch之后,抛出上述异常的子类,并提供足以定位的信息

  • 由前端接受AppException做统一处理

img

9. try-catch的性能

  1. try-catch代码块会影响JVM的优化;
  2. 异常对象实例需要保存栈快照信息,开销比较大;
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Java异常知识点总结 的相关文章

随机推荐

  • 搜索引擎的小技巧:site,+,- 等指令的使用

    1 把搜索范围限定在网页标题中 intitle 网页标题通常是对网页内容提纲挈领式的归纳 把查询内容范围限定在网页标题中 有时能获得良好的效果 使用的方式 是把查询内容中 特别关键的部分 用 intitle 领起来 例如 找林青霞的写真 就
  • java springboot 项目打包成 exe应用

    前期准备 将项目打成jar包 将jdk目录中的jre和jar包放到同一个目录下 如果没有jre则需要去官网下载一份 地址 https www oracle com java technologies javase javase8u211 l
  • netty的介绍和架构设计

    转自尚硅谷 黑马和各位大神的文章 netty是什么 Netty 是一个异步的 基于事件驱动的网络应用框架 用于快速开发可维护 高性能的网络服务器和客户端 Netty 高性能架构设计 线程模型基本介绍 不同的线程模式 对程序的性能有很大影响
  • 以太坊nonce详解

    文章目录 1 nonce 是什么 2 如何使用 nonce 3 加速和取消以太坊的交易 4 异常处理 5 nonce 使用的几条规则 6 参考资料 1 nonce 是什么 A scalar value equal to the number
  • 第7章作业

    在安装的窗口输入 pip install scrapy user i http pypi douban com simple trusted host pypi douban com cd 你的文件夹路径 py m scrapy start
  • Java注解实现增删改查CRUD

    以前 我们都把对数据库的增删改查语句写在xml文件中 详见 程序员成长笔记 一 第三部分 第四章 第四节 由于Java注解的简洁高效 在Java注解的思想 干掉xml 下 现在越来越多的人使用java注解来进行增删改查操作 而且MyBati
  • 一文弄懂神经网络中的反向传播法——BackPropagation

    最近在看深度学习的东西 一开始看的吴恩达的UFLDL教程 有中文版就直接看了 后来发现有些地方总是不是很明确 又去看英文版 然后又找了些资料看 才发现 中文版的译者在翻译的时候会对省略的公式推导过程进行补充 但是补充的又是错的 难怪觉得有问
  • 德国继续使用中国5G组件;谷歌全球招聘团队将大规模裁员;工信部开展2023年未来产业创新任务揭榜挂帅工作丨每日大事件...

    大数据产业创新服务媒体 聚焦数据 改变商业 企业动态 华为将于9月25日举行全场景发布会 内部人士称发布会包含手机新品等发布信息 9月14日消息 华为今日在官方社交账号发布消息称 将在9月25日下午2 30举行华为秋季全场景新品发布会 华为
  • 给gazebo世界中加相机kinect

    media tlf 鸡肉卷 机械臂 抓取 robot grasp simulation models kinect这个文件夹复制到 home tlf tlf ws3 src kinova ros kinova gazebo models中
  • 人类文明进入下个纪元奇点:UFO听证会-恒温超导发现-GPT大模型

    今年以来 科技领域出圈的事件频繁发生 每一个事件都意味着一个领域的重大突破的可能 这些事件是UFO听证会 恒温超导LK99的论文 GPT类大模型的广泛应用 我常将这些事件串在一起思考 细思极恐 一种 火鸡与农场主 的恐惧感袭来 首先 人类文
  • 理论--支持向量机笔记

    以下内容笔记出自 跟着迪哥学python数据分析与机器学习实战 外加个人整理添加 仅供个人复习使用 1 支持向量机要解决的问题 找到最好的一个决策方程 将两类数据点分离 支持向量机是不只找到决策方程 还要找到最好的一个 如图 左边的决策边界
  • HW算法题:整数对最小和

    整数对最小和 给定两个整数数组array1 array2 数组元素按升序排列 假设从array1 array2中分别取出一个元素可构成一对元素 现在需要取出k对元素 并对取出的所有元素求和 计算和的最小值 注意 两对元素如果对应于array
  • 自定义鼠标Cursor转变成图片

    今天无意做到项目遇到一个好玩的事情 就是当我鼠标移到一个链接上面 并不是像正常那样出现一个小手 而是变成一个小十字架 下面看图当时第一眼看到总感觉哪里不对 噢噢噢噢 这样的 小手没了 居然是一个图片 这是其实就是css自定义鼠标指针样式为图
  • 软考-嵌入式系统设计师-笔记:计算机系统基础知识

    文章目录 数制及其转换 数据的表示 原码 反码 补码 移码 浮点数 奇偶校验 CRC校验 海明校验 计算机组成及主要部件的基本工作原理 计算机硬件组成 CPU组成 存储器 计算机体系结构 冯诺依曼结构和哈佛结构 CISC和RISC 流水线技
  • Python-考试向-第一学期知识点总结

    个人向 知识点总结 课后习题解析 前言 Python第一学期知识点 1 初识python 2 Python语言基础 2 1 Python语法特点 2 2 Python中的变量 2 3 基本数据类型 2 3 1数据类型 2 3 2 数据类型的
  • REQ 【CodeForces - 594D】【树状数组+离线查询+区间思维】

    题目链接 很好的一道题 昨晚上推的 今天由于代码能力太弱敲了半天 再不断的找到自己思维的BUG 于是RE了一发 T了一发 WA了一发 就Ac了 还不错 那我们来讲解一下题目的思路 我们知道对于一个值的欧拉函数值 就是它的值去乘上它所有的质数
  • 自然语言处理实验—分词算法(含python代码及详细例子讲解)

    自然语言处理实验 分词算法 最近在学自然语言处理 这是第一个上机实验自然语言处理的分词算法 也是自然语言处理比较入门的算法 和大家分享一下 首先 自然语言处理 英文是 Nature Language Process 简称 NLP 是人工智能
  • 【PHP教程(二)】php登陆验证(附代码)

    1 登陆脚本 2 受保护的网页示例 3 注销脚本 4 注意事项 5 Hash函数字符串转换 6 php登陆脚本 哈希值验证 可以使用 PHP 创建登录脚本 PHP 提供了用于处理用户身份验证和会话的内置函数和功能 这是登录系统的基本组件 这
  • 2023春节祝福系列第一弹(上)(放飞祈福孔明灯,祝福大家身体健康)(附完整源代码及资源免费下载)

    2023春节祝福系列第一弹 上 放飞祈福孔明灯 祝福大家身体健康 附完整源代码及资源免费下载 目录 一 前言 二 一片星光闪烁的旋转星空 1 效果展示 2 相关源代码 3 语法解释 3 1 线性渐变 linear gradient 3 2
  • Java异常知识点总结

    Java异常知识点总结 1 异常处理机制主要回答了三个问题 What Where Why What 异常类型回答了什么被抛出 Where 异常堆栈跟踪回答了在哪抛出 Why 异常信息回答了为什么被抛出 2 Java异常体系 RuntimeE