mirror of
https://gitee.com/many2many/java-web.git
synced 2025-01-11 14:40:55 +08:00
edit
This commit is contained in:
parent
8dcc7db635
commit
c718d46fa5
@ -4,39 +4,41 @@
|
|||||||
### 5.1 Java基础增强(掌握)
|
### 5.1 Java基础增强(掌握)
|
||||||
|
|
||||||
#### 5.1.1 Java异常处理
|
#### 5.1.1 Java异常处理
|
||||||
- **定义**: 异常是在程序执行过程中发生的问题或意外情况。
|
> `异常`是在程序执行过程中发生的任何非正常情况或问题。它们打断了正常的程序流程,需要特别处理来确保程序的健壮性和可靠性。
|
||||||
- **java异常处理结构**:
|
|
||||||
|
**java异常类的继承关系**:
|
||||||
|
|
||||||
![](./resources/exception-hierarchy.png)
|
![](./resources/exception-hierarchy.png)
|
||||||
|
|
||||||
> Throwable类是Java所有错误和异常的父类。
|
`Throwable`类是所有异常的超类,它不能被实例化。`Throwable`有两个重要的子类:`Exception`和`Error`。
|
||||||
|
- Throwable: 所有错误和异常的超类。
|
||||||
|
- Error: 表示合理的应用不应该试图捕获的严重问题。例如,内存溢出等。
|
||||||
|
- Exception: 表示合理的应用可能想要捕获的条件。异常通常由编程错误之外的情况引发。
|
||||||
|
|
||||||
> 非检查异常类
|
**非检查异常 (Unchecked Exceptions)**
|
||||||
>> Error 和 RuntimeException 以及他们的子类
|
- 包括Error和RuntimeException及其子类。
|
||||||
>
|
- 这些异常通常是由编程错误引起的,如数组索引越界或空指针引用。
|
||||||
>> 通俗得理解就是:这些异常,和自己写的代码逻辑有很大关系,这类异常在编译得时候一般能通过,在程序运行过程中会抛出这些异常 如IndexOutOfBoundsException NullPointerException
|
- 编译器不会强制要求处理这些异常,因此称为“非检查”。
|
||||||
|
|
||||||
> 检查异常类
|
**检查异常 (Checked Exceptions)**
|
||||||
>> 除了Error 和 RuntimeException以及他们的子类外的其它异常类
|
- 除了Error和RuntimeException之外的所有其他异常。
|
||||||
>
|
- 这些异常是程序应该能够预料到并需要处理的,如文件未找到异常。
|
||||||
>> 可查异常虽然是异常状况,但在一定程度上它的发生是可以预计的,而且一旦发生这种异常状况,就必须采取某种方式进行处理。
|
- 编译器要求要么在调用方法时处理这些异常(使用try-catch块),要么在方法声明中声明它们可能会抛出这些异常(使用throws关键字)。
|
||||||
这种异常的特点是Java编译器会检查它,也就是说,当程序中可能出现这类异常,要么用try-catch语句捕获它,要么用throws子句声明抛出它,否则编译不会通过。
|
|
||||||
|
|
||||||
- **java异常使用**:
|
**Java异常使用**
|
||||||
|
|
||||||
关键词: try、catch、finally、throw、throws
|
**关键词:**
|
||||||
|
* try: 用于标记可能抛出异常的代码块。
|
||||||
|
* catch: 用于捕获并处理try块中抛出的异常。
|
||||||
|
* finally: 不管是否有异常发生,finally块中的代码总会被执行。
|
||||||
|
* throw: 用于抛出一个新的异常实例。
|
||||||
|
* throws: 用于声明一个方法可能会抛出的异常类型。
|
||||||
|
|
||||||
try-catch-finally: 将可能要出现异常的代码放入try中,catch 捕获 try 中的异常,并处理,不管有没有异常,finally中的代码都会执行。(finally不是必须)
|
**自定义异常类**
|
||||||
|
|
||||||
throw: 一般是语句抛出一个异常
|
创建自定义异常类时,可以根据是否需要强制性地进行异常处理来选择继承Exception还是RuntimeException。
|
||||||
|
- 继承Exception(检查异常): 如果希望强制用户处理这个异常,可以选择继承Exception。
|
||||||
throws:一般是方法抛出一个异常
|
- 继承RuntimeException(非检查异常): 如果异常是由于编程错误引起的,或者不需要强制处理,可以继承RuntimeException。
|
||||||
|
|
||||||
- **自定义异常类**
|
|
||||||
|
|
||||||
一般自定义异常会继承Exception或RuntimeException类。
|
|
||||||
但具体继承哪一个类呢 还是要视情况而定,若继承受检查的异常,会与方法耦合,若不抛异常就要try-catch,操作不够灵活;
|
|
||||||
若继承RuntimeException 就相对上面的就简洁多了。
|
|
||||||
|
|
||||||
#### 5.1.2 注解(掌握)
|
#### 5.1.2 注解(掌握)
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user