【笔记】Java的异常

前言

Java的异常学习笔记

异常的继承结构

graph TD
    Throwable[Throwable] --> Error[Error]
    Throwable --> Exception[Exception]
    Exception --> NullPointerException[NullPointerException]
    Exception --> ArrayIndexOutOfBoundsException[ArrayIndexOutOfBoundsException]
    Exception --> NumberFormatException[NumberFormatException]
    Exception --> ClassCastException[ClassCastException]
    Exception --> ClassNotFoundException[ClassNotFoundException]

捕获异常

Exception:异常类型

1
2
3
4
5
try {
...
} catch(Exception e) {
...
}
  • finally中的代码不论是否报错都会执行(无论return还是break
1
2
3
4
5
try {
...
} finally {
...
}
1
2
3
4
5
6
7
try {
...
} catch(Exception e) {
...
} finally {
...
}

多个异常

1
2
3
4
5
try {
...
} catch(Exception | Exception e) {
...
}
1
2
3
4
5
6
7
try {
...
} catch(Exception e1) {
...
} catch(Exception e2 {
...
}

抛出异常

  • 在方法上设置异常的抛出管道
1
2
3
void method() throws Exception {
...
}
  • 方法上有默认的异常管道类型RuntimeException

抛出多个异常

1
2
3
void method() throws AException, BException {
...
}

手动抛出异常

创建异常

1
Exception e = new Exception();

抛出异常

1
throw e;

断言表达式

启用断言表达式

1
java -jar -enableassertions <jar>

断言

1
assert 布尔表达式;
1
assert 布尔表达式 : "文本内容";

完成

参考文献

哔哩哔哩——青空の霞光