Java基础篇---异常处理

1. Java异常类层次结构图 

 

2. Throwable是所有异常类的父类。有两个重要的子类:ExceptionError。    

    Error:是程序无法处理的错误。通常是指程序运行时JVM出现的错误,例如outofmemory(内存不足)。

               这是由于程序设计逻辑有问题,导致程序运行时,JVM本身出现了错误,所以是不可以被程序处理的。    

    Exception:是程序本身可以处理的异常。 例如空指针,算术运算错误,数组下标越界等等。

 

3. 常用Throwable的toString()方法打印异常信息。  

    toString()会调用getLocalizedMessage()方法,如果异常对象没有override该方法,则父类Throwable中默认是调用getMessage()方法。

 

4. 异常处理方法:  

    try():用于捕获异常。    

    catch(): 用于处理异常。    

    finally(): 无论是否捕获或者处理异常,finally()中的方法始终会被执行。

    所以finally中常用来完成一些善后处理工作,例如文件资源或网络资源的释放等。    

    如果try()或者catch()中含有return语句,则finally()中的语句块会在return之前被执行。如果finally中也有return语句,则finally中return的值会覆盖掉try或catch中的return值

 

5. finally()语句块不会被执行的三种情况:  

    a. 在执行finally语句块的第一句时,发生了异常。    

        所以应该确保finally语句块中不会发生异常。  

    b. 在执行finally语句块之前,调用了System.exit(int),exit的参数是非零的,即程序是非正常退出。  

    c. 程序所在线程死亡。  

    对于以上三点,其实只需注意第一点,对于后面的两点,程序都已经异常终止了,finally中的语句块执不执行已经没有意义了。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章