异常知识点

扫码查看

一. 异常是什么

异常是指阻止当前方法或作用域继续执行的问题。比如你读取的文件不存在,数组越界,进行除法时,除数为0等都会导致异常。

二丶异常的分类

Error(这里就强制使用 try ····catch)

  表示编译时或者系统错误,如虚拟机相关的错误,OutOfMemoryError等,error是无法处理的。这里就强制使用 try ····catch

Exception ( 这里不用强制使用 try ····catch,基本上不用管直接去解决就可以了)

  代码异常,Java程序员关心的基类型通常是Exception。它能被程序本身可以处理。

  它可以分为RuntimeException(运行时异常)和Check-edException(可检查的异常)。

常见的RuntimeException异常:

  空指针   nullPointerException

  下标越界   ArrayIndexOutOfBoundsException

  转型的异常   ClassCastException

  算术异常 ArithmeticException

常见的 Checked Exception 异常:

操作输入流和输出流时可能出现的异常  IOException

类型转换异常类  ClassCastException

三丶异常处理
try{// 可能出错的代码
}catch(Exception e){
  异常处理语句
}finaly{
最后想要输出的东西,无论如何,都会执行的代码块}
如果在try块中有多个不同类型的异常需要捕获
        1.直接捕获异常父类Exception就可以了
        2.多个异常依次捕获,多个catch块
        2.1 多个异常依次捕获,需要注意异常的顺序问题,父类异常应该在最后处理
        2.2 多个异常捕获,只会进入其中的一个异常
        3.try catch都是单独的语句块


四丶异常语句块的执行顺序(try-catch-finally

如果不发生异常,不会执行catch部分。

不管有没有发生异常,finally都会执行。

即使try和catch中有return时,finally仍然会执行

finally 是在return后面的表达式运算完后再执行的。(此时并没有返回运算后的值,而是先把要返回的值保存起来,若finally中无return,则不管 finally中的代码怎么样,返回的值都不会改变,仍然是之前保存的值),该情况下函数返回值是在finally执行前确定的)

12-15 21:03
查看更多