1.带有异常的方法和调用方
异常的方法必须声明可能抛出的异常, 调用异常方法的方法可以抓住其他方法抛出的异常,异常总是会丢回给调用方
public void takeRisk() throws BadException{
if(abandonAllHope){
throw new BadException();
}
}
编译器回核对每件事,除了RunTimeExceptions之外
2.try/catch块的流程控制
try如果执行成功 catch里面不执行直接到catch后面的语句
try如果抛出异常,try后面的语句不再执行,直接执行catch里面的语句
如果有finally 不管try/catch 里面有没有return都会先执行finally里面的语句然后在执行return语句
catch与finally不能没有try
try和catch之间不能有程序
try一定要有catch或finally
只带有finally的try必须要声明异常
3.一个以上的异常声明和处理
如果两个或者两个以上的异常有共同的父类时,可以只声明该父类就行(异常是多态的)
为每个需要单独处理的异常编写不同的catch块(catch块从下到大排列)
public void doLaundry() throws PantsException, LingerieException{};
try{ }catch( PantsException ){}catch( LingerieException ){}
4.异常的处理
处理 或者duck掉