1.异常处理
异常(Exception)是正常程序流程所不能处理或没有处理的异常情况或异常事件,它中断指令或程序的正常执行。
2.Java中的异常类
Java中的异常类包含在java.lang和java.io包中,其共同的父类是java.lang.Throwable。
父类的优先级会比子类的高,因此,捕获子类异常的代码必须放在捕获父类异常的代码前面。
3.异常处理模式
try-catch-finally语句
- try{}语句后面必须跟一个catch或finally语句块,有catch,finally语句可有可无;无catch,必须有finally语句。
- 异常发生后,在try语句块中,异常位置的后续代码都不会执行,直到找到异常匹配才会执行try-catch-finally后面的语句。
- catch语句按编写顺序查找异常匹配,只要找到一个异常匹配,就不会去寻找其他异常。
- finally语句块无论是否发生异常都要执行。
异常类成员方法
从父类Throwable继承的方法主要包括:getMessage()
用来取得与异常和错误相关的错误信息;printStackTrace()
用来打印显示异常发生地方的堆栈状态;toString()
用来显示异常信息以及getMessage()
返回信息。
异常捕获与处理
- 产生异常对象并中断当前正在执行的代码,抛出异常对象。
- 自动按程序中的catch的编写顺序查找“最接近的”异常匹配。
- 若有匹配则执行相应的处理代码,然后执行try-catch-finally之后的代码。若没有找到异常匹配,系统会报错,且终止程序。
4.重新抛出异常
throws
语句
throws
关键字通常被应用在声明方法时,用来指定可能抛出的异常。- 使用throws表明该方法本身不会对该异常进行处理,一旦发生该异常将由调用该方法的main方法进行执行处理(即该方法的上一级进行捕获)。
throw
语句
throw
关键字通常用在方法体中,并且抛出一个异常对象。程序在执行到throw语句时立即停止,它后面的语句都不执行。如果要捕获throw抛出的异常,则必须使用try-catch语句。