前言
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
| java -jar -enableassertions <jar>
|
断言
完成
参考文献
哔哩哔哩——青空の霞光