异常处理
——异常是在运行时出现的错误。在java中,所有异常都是用类表示的,所有异常都源自Throwable的类,所以当出现异常时,就会产生某种异常类的对象。
--Throwable有两个直接的子类:Exception和Error(这个错误发生在JAVA虚拟机中,我们无法控制,将不会处理).
--Exception类具有一个子类RuntimeException,表示各种常见的运行时错误。
--java异常处理通过try、catch、throw、throws和finally等5个关键词进行。
try{//blockofcodetomonitorforerrors}对可能产生异常的代码块进行监视和引发异常。
catch(ExcepType1exOb){//handlerforExcepType1}catch捕捉对应异常类型的异常并对其进行处理,exOb将接收其值。
catch(ExcepType2exOb){//handlerforExcepType2}...
捕捉异常好处是防止程序异常终止,并且可以继续执行,如果没有捕捉到异常,JVM将捕捉到它,并且JVM默认异常处理程序将终止执行。
--异常类型ArrayIndexOutOfBoundsException的数组越界,以0异常类型:ArithmeticException。
--throw语句手动抛出异常对象try{//blockofcodetomonitorforerrors;thrownewArithmeticException();}
--重新引发异常catch(ExcepType1exOb){//handlerforExcepType1;throwexc;}
如果再次引发异常,那么相同的catch语句将无法捕获异常,而将其传递到下一个catch语句。
--finally代码块在退出try/catch代码块时执行代码块。
--throws:某些情况下,如果某个方法生成了自己没有进行处理的异常,那么它必须在throws语句中声明。
无需在throws列表中指定任何Error或RuntimeException异常,并且需要声明其他类型的声明,否则将导致编译错误。
publicvoidreadTestData()throwsIOException{}
--自定义异常Exception继承Throwable的方法。