在我们写java程序时难免会出现错误,java中的异常机制为了提高我们程序的健壮性和容错性二存在
一、异常体系
Throwable类是java语言中所有错误和异常的超类。
1、Throwable类子类:Error(错误类)和Exception(异常类)
①Error类:程序出现了严重的问题,这种问题程序解决不了,不如内存益处或者断电,错误一般都是以Error为结尾
②Exception类:异常类分为编译期异常和运行时异常,异常都是以Exception为结尾
2、运行时异常编译的时候没有异常,但是程序执行过程中产出的异常就是运行时异常。这种异常我们需要通过程序来容错提高代码的健壮性。
3、编译期异常编译期的异常我们必须处理,如果不处理就会编译失败。
4、运行时异常和编译时处理方法有两种:
①自行处理:
我们通过
try{
有可能发生运行时异常的代码
}catch(异常对象){
//处理或者向外抛出
}finally{
释放资源
}
②向上抛出:
如果被调用的方法发生了运行时的异常,那么如果被调用的方法不去处理(不try..catch)jvm默认就会把这个运行时的异常抛到上一层,上一层函数可以对这个异常来处理,如果上一层函数依然没办法处理那么就不处理,就会接着向上抛出,总有一层方法会处理它。
finally内部的代码不管是否发生异常一定会被执行,finally主要是来做一些资源的释放。
6、自定义异常:
在实际的项目中,我们需要跟业务相关的异常,javaAPI中是没有的,所以我们要自定义。
如:在电商系统中,在提交订单的时候如果出现了库存不足,我们要抛出自定义的异常。
自定义的异常只要继承javaAPI中的异常类即可,通常情况下我们会自定义运行时异常。
所以我们自定义异常就去继承RuntimeException。
7、异常中常用的方法:
public StringgetMessage() 返回此throwable的详细消息字符串。
public StringtoString() 返回此throwable的简短描述。结果是以下字符串的串联
public void printStackTrace()打印出异常的详细信息。