首页 > 编程语言 > 详细

java异常类

时间:2021-04-02 10:58:08      阅读:19      评论:0      收藏:0      [点我收藏+]

异常类的继承结构

object

Throwable

Error (所有只要发生,不可处理,退出JVM,程序执行终止)

VirtualMachineError
StackOverflowError
IOError

Exception

ExceptionSubClass(Exception的直接子类,也称编译时异常/受检异常/受控异常)
RuntimeException(运行时异常/未受检异常/非受控异常)
  1. NullPointException

  2. ClassCastException(类转换异常)

  3. illegalArgumentException

    • NumberFormatException(数字格式化异常)

       

  • 所有Exception的直接子类都称为编译时异常。编译时异常因它必须在编译阶段进行处理而得名,若不处理,则编译器报错。但它发生在运行阶段,所有的异常实质上都是new了一个异常对象,所以所有的一场都是发生在运行阶段的。编译时异常一般发生的概率较高

  • 运行时异常可处理也可不处理。运行时异常一般发生的概率较低。

异常处理方式(两种)

  1. 异常上抛:方法声明位置后面使用Throwable关键字,抛给上一级异常。

  2. 异常捕捉:try...catch自行捕捉异常

    注意:异常一直上抛至main方法。调用者为JVM,此时程序终止,退出JVM.

  3. try 结构体中负责发现异常,catch(){}结构体中负责捕捉异常。finally结构体中负责执行必须执行的代码(无论异常是否发生)

关于try...catch...finally

  • finally 语句块中的代码一定会执行

  • 可以存在try..finally

技术分享图片

技术分享图片

  1. (java常见面试题)final finally finalize 三者之间的区别:

    final :关键字,修饰方法/实例变量/类(final修饰的类无法继承,final修饰的方法无非是覆盖,final修饰的变量无法覆盖)

    finally:关键字,和try联合使用

    finalize:标识符,是一个方法名。它是Object类中的一个方法。该方法由JVM垃圾回收器GC负责调用。

4.自定义异常类:

  • 自定义异常类,继承Exception或者Runtime Exception

  • 自定义类中添加两个构造方法:无参构造和有参构造

  1. throw和throws二者之间的区别:

throw:手动抛出异常对象,后面跟随的是一个对象名

throws:抛出异常类,用于方法声明位置后,可添加多个,用逗号隔开。表示当前对象无法处理该类异常,上抛。

  1. 获取异常提示信息:e.getMessage()

打印堆栈异常追踪信息:e.printStackTrace

  1. 重写之后的方法不能抛出比重写之前的方法抛出更多/更宽泛的异常

java异常类

原文:https://www.cnblogs.com/a-n-yan/p/14609077.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!