当前位置: 首页 > article >正文

Java异常详解大全(2023版)

Java异常详解

  • 异常分类
    • 1.Throwable
    • 2. Error(错误)
    • 3. Exception(异常)
      • 3.1 运行时异常 RuntimeException
      • 3.2 编译时异常(受检查异常)ClassNotFoundException + IOException
    • 4.常见的运行时异常
    • 5.异常如何处理
      • Java 的异常处理是通过 5 个关键词来实现的:try、catch、throw、throws 和 finally。
      • 5.1异常关键字
      • 5.2 异常处理方法
        • 5.2.1 声明异常 throws关键字 (不能处理Error和运行时异常)
        • 5.2.2 抛出异常 throw关键字 一般放在方法体里面
        • 5.2.3 捕获异常 try/catch/finally关键字 (经常用来处理运行时异常)
        • 5.2.4 自定义异常
        • 5.2.5 最佳实践
          • 1. 优先捕获最具体的异常类,将不太具体的 catch 块添加到列表末尾
          • 2. 在 finally 块中清理资源
          • 3.优先明确异常
    • 6.try、catch、finally使用

异常分类

在这里插入图片描述

1.Throwable

概念:Throwable 是 Java 语言中所有错误与异常的超类。(详细如上图所示)

  • Throwable 包含两个子类:Error(错误)和 Exception(异常)
  • Throwable 包含了其线程创建时线程执行堆栈的快照,它提供了 printStackTrace() 等接口用于获取堆栈跟踪数据等信息。

2. Error(错误)

定义: 发生时候应用程序是不会处理此类错误的

Error 类及其子类是程序中无法处理的错误,表示运行应用程序中出现了严重的错误。

特点:

此类错误一般表示代码运行时 JVM 出现问题。

  • 通常有 Virtual MachineError(虚拟机运行错误)、NoClassDefFoundError(类定义错误)等。

  • 比如 OutOfMemoryError:内存不足错误;StackOverflowError:栈溢出错误。此类错误发生时,JVM 将终止线程。

总结:

这些错误是不受检异常,非代码性错误。因此,当此类错误发生时,应用程序不应该去处理此类错误。按照Java惯例,我们是不应该实现任何新的Error子类的!

3. Exception(异常)

Exception是程序本身可以捕获并且可以处理的异常

Exception 这种异常又分为两类:运行时异常 和 编译时异常

受检异常除 RuntimeException 及其子类外,其他的 Exception 异常都属于受检异常

非受检异常该类异常包括运行时异常(RuntimeException极其子类


http://www.kler.cn/a/157945.html

相关文章:

  • android高版本适配使用Tools.java
  • CSS-200个小案例(一)
  • 优雅草蜻蜓I即时通讯·水银版私有化部署之java服务端搭建教程-01
  • [HTML]Web前端开发技术6(HTML5、CSS3、JavaScript )DIV与SPAN,盒模型,Overflow——喵喵画网页
  • 4、单例模式(Singleton Pattern)
  • 【开源视频联动物联网平台】写一个物联网项目捐献给Dromara组织
  • mysql时间类型处理
  • C++:文件操作
  • Jupyter Notebook中设置Cell主题
  • Java---异常
  • 人工智能-机器翻译:技术发展与代码实战
  • 机器学习实验二:决策树模型
  • react学习--Redux的使用
  • ios上传图片旋转问题解决方案(vant上传图片)
  • cmd下查看python命令的用法
  • Linux CenTOS命令备忘
  • java每日一记 —— BeanFactory 与 ApplicationContext 的区别
  • QT中如何使用自定义控件
  • a-table:表格组件常用功能记录——基础积累
  • 【bash指令全集合】最全教程-持续更新!