- 异常有编译期异常(Exception)和运行期(RuntimeException)异常
- 运行期异常可以解决也可以不解决。
1.如果我们不处理,会抛给JVM处理,JVM的默认处理方式,是打印异常信息,并终止虚拟机
2.自己处理,用try,catch 处理,try里放的是有可能会出现问题的代码,捕捉异常时,多个异常可以并列,如果这些异常之间有继承关系,那么大的异常要放在后面。 - 编译期异常必须解决,编译期的异常出现在编译期,异常不处理,程序无法执行
处理方式:
1.throw向上抛出,谁调用,谁处理
2.自己用try catch处理
3.一般我们在finally里面做一些善后处理,释放内存,不管有没有异常,finally里面都会执行
throw和throws的区别:
1.throw一般只能抛出一个异常,throws一次可以抛出多个异常
2.throw抛出的异常是发生了的异常,throws抛出的异常只是一种可能性 - 父类和子类之间的异常:
父类和子类的异常:父类没有抛出的异常,子类不能抛出
父类没有抛出异常,子类在重写父类方法的时候只能捕获处理
父类抛出了异常,子类也可以抛出异常,但抛出的异常不能比父类的异常大
目前小白,写的不好,有错误的地方,望指正,谢谢~