异常

异常.png
  • 受检异常:可以通过程序检查改正的错误和异常

  • 非受检异常:需要手动更改代码,或抛出的异常

使用异常的原则:早抛出,晚捕获

在捕获多个异常对象时,应该把最特殊的异常类的catch块放在前面

相对更一般的异常类catch块放到后面

否则会得到不可到达的编译错误

因为更特殊的异常会自动向上转型成为更一般的异常类型,如果先捕获一般的异常,也会包含着捕获了特殊异常 所以特殊异常的catch块就不可达了

异常子类在前被捕获,异常父类在后被捕获(子类在前,父类在后)

在Java 7之前一个catch块只能处理一个异常,Java 7之后一个catch块可以处理多个异常

在catch块中一定要写一些与异常或错误相关程序逻辑(哪怕是打印错误),如果出现空catch块,则是一种极其恶劣的编码习惯

其异常的捕获顺序还是从特殊到一般的,同一继承层次的异常类型,建议放在一个圆括号内

处理更具体的异常类型的catch块应该放在前面,更抽象的异常类型catch块应该放在后边

在同一个圆括号中的多个异常类不能是父子关系(祖先后代关系)

只有在必须处理异常的时候才去try-catch-finally,一般使用throws抛出

你可能感兴趣的:(异常)