throws:指明此函数可能抛出的错误异常,在编写可能会抛出异常的方法时,他们都必须声明有异常
Exception:异常是一种Exception类型的对象
RuntimeException:是不受检查的异常(包括他的子类)
try/catch:是用来处理真正的异常,而不是处理程序的逻辑错误
try/catch块的流程控制
- try成功
try块先运行,跳过catch - try失败
try块停止在错误的那一行,try的剩余部分跳过,直接到catch块 - finally:加在catch块后,是无论如何都要执行的部分
用throws在方法中声明异常
有多个异常时要逐个声明,当异常有共同的父类时,可以只声明父类
多重异常要有多个catch
异常也是多态的
- 可以以异常的父型来声明会抛出的异常
- 可以以抛出的异常父型来catch异常
可以用super来处理所有的异常
可以这么做,但并不代表应该这么做,会搞不清楚错在哪
要为每个需要单独处理的异常编写不同的catch项
有多个catch块时,需要按照级别从小到大排列
不想处理异常时,可以duck掉
有throws,但是不提供catch块