Java-异常机制
异常
Java中所有异常都是一个类, 继承自 Exception
类。
异常分为运行时异常和编译时异常。
运行时异常继承自 RuntimeException
类, 不进行处理会中断程序运行, 如数组越界。
编译时异常在编译阶段不进行处理会无法通过编译, 如一些文件操作。
错误
错误继承自Error
类。
错误一般是JVM层面, 而不是程序逻辑层面, 如内存溢出(OutOfMemoryError
)。
有些错误也可以捕获。
异常的捕获
1 |
|
异常只会被捕获一次, 就近原则。
可以用多个catch
来捕获多类异常, 分别处理。 注意父类异常放在后面。
用|
分隔来捕获多类异常并同时处理。
1 |
|
finally
关键字做最后处理, 无论是否出现异常都去执行。
异常的抛出
定义方法时, 用throw
关键字抛出异常。
1 |
|
在方法后加 throws Exception
可以将异常继续向上抛出, 而不在本方法中处理。
1 |
|
常见异常
- ArrayIndexOutOfBoundsException
- NullPointerException
- ArithmeticException
- IOException
自定义异常
继承Exception
类即可。
1 |
|