概述

异常的基类是 Throwable, Throwable 有两个子类:

  • Exception : 表示可以恢复的异常, 编译器可以捕捉。
  • Error : 表示编译时和系统错误, 表示系统在运行期间出现了严重的错误, 属于不可恢复的错误。

受检异常和非受检异常

  • 受检异常指的是在编译期间会接受编译器检查, 且必须要处理( try... catch 处理掉或直接在方法签名中使用 throws 抛出), 否则会编译出错

    • 此类异常是除了 RuntimeExceptionError 外所有的异常, 例如 IOExceptionInterruptedExceptionSQLException
  • 非受检异常 指的是编译期间不会接受编译器检查, 不必处理的异常。
    • 此类异常包括了 RuntimeExceptionError 的所有异常。

异常处理

一般有两种方法来处理异常 : try...catch 或直接在方法签名中使用 throws 抛出。

catch 使用注意事项

  • 参数的异常类型必须是 Throwable 类型。
  • 如果有多个 catch 语句块, 则从上到下必须按照从 子类到父类 的顺序排布, 否则会编译出错

finally 使用注意事项

  • finally 里面的代码一般情况下会执行, 但是如果在 try 或者 catch 中执行 System.exit(1) (即虚拟机退出)时, 不会执行 finally 中的代码。
  • finally 中最好不要出现 return 语句, 因为最终执行的一定是 finally 里面的 return

Java 异常种类及处理方法相关推荐

  1. Java异常打印输出中常见方法的分析

    Java异常是在Java应用中的警报器,在出现异常的情况下,可以帮助我们程序猿们快速定位问题的类型以及位置.但是一般在我们的项目中,由于经验阅历等多方面的原因,依然有若干的童鞋在代码中没有正确的使用异 ...

  2. Java异常面试问题

    转载自   Java异常面试问题 1.什么是Java中的异常? 异常是在程序执行期间可能发生的错误事件,并且会中断它的正常流程.异常可能来自不同类型的情况,例如用户输入的错误数据,硬件故障,网络连接故 ...

  3. java 异常面试问题_Java异常面试问答

    java 异常面试问题 Java provides a robust and object-oriented approach to handle exception scenarios known ...

  4. java中的异常种类和区别以及处理机制和区别

    java中的异常种类和区别以及处理机制和区别 按照异常需要处理的时机分为编译时异常(也叫强制性异常)也叫 CheckedException 和运行时异常(也叫非强制性异常)也叫 RuntimeExce ...

  5. JAVA常见异常种类

    Java类库的每个包中都定义了异常类,所有这些类都是Throwable类的子类,Throwable类属于java.lang包,每个java程序运行时系统会自动引入此包:Throwable类有两个子类, ...

  6. 【Java 异常】try-catch、finally、异常的种类、throws、thorw、自定义异常、断言类

    异常 开发中的错误(语法错误.逻辑错误.异常) 异常(Exception) try-catch 异常对象的常用方法(getMessage.printStackTrace) finally 异常的种类( ...

  7. JAVA产生异常并打印,Java中异常打印输出的常见方法整理

    前言 Java异常是在Java应用中的警报器,在出现异常的情况下,可以帮助我们程序猿们快速定位问题的类型以及位置.但是一般在我们的项目中,由于经验阅历等多方面的原因,依然有若干的童鞋在代码中没有正确的 ...

  8. Java常见异常种类及产生原因

    Java常见异常种类及产生原因 JAVA异常共分为下列几种 Error JAVA环境编译错误 Runtime Exception 运行处异常 Exception 标准Java库方法异常 throw 用 ...

  9. java.util.ConcurrentModificationException异常原因及解决方法

    java.util.ConcurrentModificationException异常原因及解决方法 参考文章: (1)java.util.ConcurrentModificationExceptio ...

最新文章

  1. 人民日报:大数据时代如何保证数据安全?
  2. 【聚类算法】sklearn聚类方法详解
  3. 为sap的alv的最左侧添加【选中】按钮用于同时选中多行...
  4. mysql 5.7.13安装_安装MySQL 5.7.13
  5. linux io 分析,Linux 下的I/O性能分析 iotop
  6. 1017. A除以B (20)
  7. 【Python】Python3编码规范
  8. ElementUI项目优化上线
  9. android 区域交错,android - 自动调整交错GridLayoutManager - 堆栈内存溢出
  10. 类的实例属性和类属性的区别
  11. Dubbo入门----搭建一个最简单的Demo框架
  12. 陀螺仪数据转换成角度_请教怎么把用陀螺仪积分得到的角度转换到大地坐标系下?...
  13. 视频播放器本地代理服务设计
  14. Matlab中的atmoscoesa函数与atmosisa函数——不同海拔下的标准大气参数查询
  15. 微信群裂变引流文案技巧,这样写文案更吸引粉丝!
  16. 云计算的主要应用领域
  17. Camera效果测试-色彩准确性及饱和度测试
  18. Trinity安装与报错
  19. python求100内五的倍数_100一百以内5的倍数有哪些
  20. 护理方面关于人工智能的构想_谷歌秘密的atap实验室正在构想智能设备的未来...

热门文章

  1. 功能区不显示工具条_【新老客户必知】软件支持超高清屏显示器了
  2. 项响琴C语言书籍在线浏览,电子琴 c语言程序
  3. python变量分类_Python 入门系列 —— 5. 三大变量类型介绍
  4. Python获取电脑CPU序列号、主板序列号、BIOS序列号、硬盘序列号列表、网卡MAC地址
  5. shiro整合mybatis数据库
  6. Executors源码解读——创建ExecutorService线程池
  7. ui测试怎么做?依据文档有哪些_微信小程序开发流程有哪些?各个环节注意事项...
  8. 如何用计算机算矩阵,【活用工具】教你如何用卡西欧fx82es计算机计算复数 矩阵...
  9. dataguard mysql,[dataguard同步数据库]Dataguard环境下数据库的备份与恢复
  10. linux用java连接mysql_Java使用JDBC方式连接数据库