Java入土---异常
异常
程序在运行过程中,遇到一些意外,统称为异常(exception)
异常分为
- 检查性异常
- 运行时异常
- 错误ERROR
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-dJjleUHa-1648125170108)(../box/比特截图2022-03-17-15-01-42.png)]
从图中不难看出,所有的异常都是Throwable的子类。
- error,是由虚拟机抛出,大多数其错误与代码编写者所执行的操作无关。
- Java虚拟机运行错误,当jvm不在有继续执行的操作所需要的内存资源时,将出现OutOfMemoryError
Exception警告
Error是不能执行的,但是Exception能被检测出来,捕获进行处理。
抛出异常
对于一般的异常,我们都可以用Java的异常关键字来进行捕获。
异常处理关键字
- try
- catch
- finally
- throw
- throws
try就是监控区写你的异常代码。
catch(异常类型){}是捕获异常,捕获异常类型之后执行catch内的代码
finally{},是善后工作,不管出不出异常,都执行,一般finally用于对资源的关闭。
可以多个catch,就像case一样,多个异常捕获。
idea的快捷键,ctrl + alt + T,自动生成异常捕获。
throw是抛出异常。
throws是在方法中抛出多个异常。
throw new + 异常类型;
一般在方法中使用,主动抛出异常。
throws是在方法上使用
public void A ()throws 异常类型{
}
自定义异常
只需要继承Exception类之后,就是自定义异常类了,一般Java自带的异常就可以满足我们平时对异常的需求。
之后,在测试类中调用
异常
- 运行时的异常,可以采用try-catch来捕获异常。
- 多重catch后加一个catch(Exception)来捕获可能漏掉的异常
- 尽量用finally来释放资源
- 对于异常,要去处理,不要只打印。