JAVA异常

2022-03-30  本文已影响0人  独自闯天涯的码农

一、简介

Java异常是Java提供的一种识别及响应错误的一致性机制。
Java异常机制可以使程序中异常处理代码和正常业务代码分离,保证程序代码更加优雅,并提高程序健壮性。在有效使用异常的情況下,异常能清晰的回答:

Java异常机制用到的几个关键宇:try、catch 、finally、throw、throws

try-catch-finally方法执行顺序

finally只有两种情况不会执行到:
1、try-catch语句没执行到;
2、try-catch语句中调用了System.exit(0);

finally语句与return关系:
1、finally语句是在try的return语句执行之后,return返回之前执行。
2、finally语句中的return会覆盖try中的return;
3、finally语句中没有return覆盖,则其中对值的修改,可能改变也可能不改变;因为Java是传值不传址;

二、JAVA异常框架

异常框架

1、Throwable

Throwable是 Java 语言中所有错误或异常的超类。
Throwable包含两个子类:Error 和 Exception。它们通常用于指示发生了异常情况。
Throwable包含了其线程创建时线程执行堆栈的快照,它提供了printStackTrace()等
接口用于获取堆栈跟踪数据等信息。

2、Exception

Exception及其子类是Throwable 的一种形式,它指出了合理的应用程序想要捕获的条件。分两大类:运行时异常和非运行时异常(编译异常)。

  1. 运行时异常:都是RuntimeException类及其子类异常
  2. 非运行时异常 (编译异常):除了RuntimeException以外的异常,类型上都属于Exception类及其子类。

3、RuntimeException

RuntimeException是那些可能在 Java 虚拟机正常运行期问拋出的异常的超类。
编译器不会检查RuntimeException异常。
例如,除数为零时,抛出ArithmeticException异常。RuntimeException是ArithmeticException的超类。当代码发生除数为零的情況时,倘若既"没有通过throws声 明抛出ArithmeticException异常〝,也"没有通过try...catch..处理该异常",也能通过编译。这就是我们所说的"编译器不会检查RuntimeException 异常"。需要通过更改代码来避免该情况发生。

4、Error

Error也是Throwable的子类。它用于指示合理的应用程序不应该试图捕获的严重问题,大多数这样的错误都是异常条件。
和RuntimeException一样,编译器也不会检查Error

5、可抛出异常类型

Java将可抛出(Throwable)的结构分为三种类型:

1、运行时异常
2、被检查的异常
3、错误
上一篇下一篇

猜你喜欢

热点阅读