zoukankan      html  css  js  c++  java
  • 自学JAVA-8:异常

    异常

    1、异常:描述出错误信息的对象。

    2、异常的API结构:Throwable有两个子类Error和Exception。
    Error表示错误,能被虚拟机捕获,但没法处理,一般用于描述崩溃级别的严重错误。
    Exception称为异常,能被虚拟机捕获,同时也可以在发生异常时,对该异常进行处理。

    注:Error是所有错误类的父类,Exception是所有异常类的父类。

    3、try{

    }catch(NullPointerException e){
    e.printStackTrace();
    }
    称为异常捕获,如果在try块中发生了空指针异常。那么,会产生空指针异常的对象。可以使用catch块中定义的异常变量指向该对象。通过e.printStackTrace();打印异常对象中封装的出错信息。

    4、一个try块可以匹配多个catch块。如果try块中发生了异常,指挥执行第一个匹配异常的catch块,其它catch块全部忽略。

    5、异常执行顺序:先执行try块,顺序执行。如果try块中有异常发生,则转到catch块执行,同事异常中止try块中的其他代码。无论是否有异常发生,try......catch块执行完毕后,继续执行后面的代码。

    6、常见异常
    ArithmeticException 算术异常。
    ArrayIndexOutOfBoundsException 数组下标越界异常。
    ClassCastException 类型转换异常。
    NullPointerException 空指针异常。
    NumberFormatException 数字转换异常。
    FileNotFoundException 文件加载失败异常。

    7、finally语句块,表示无论是否有异常发生,都会执行的语句块。通常用于资源清理工作,比如:流的关闭,数据库连接的关闭。
    如果try块或catch块中,有return语句,那么,在跳出方法之前,会执行finally块。
    如果try块或catch块中,有System.exit(0)结束程序的语句,那么finally块不会执行。

    8、异常的分类:编译期异常(检查异常)和运行期异常(非检查异常)
    编译期异常:要求用户必须要处理的,如果用户不处理,则无法通过编译。
    运行期异常:在调用时用户可以处理,也可以不处理。运行期异常如果不做处理,同样可以通过编译。

    所有的运行期异常,都是RuntimeException的子类。

    9、final、finally、finalize的区别:
    final是修饰符,可以修饰类、方法、量。修饰类表示该类不能被继承;修饰方法表示该方法不能被子类重写;修饰变量表示该变量的值不能改变。
    finally是语句块,表示无论是否有异常发生,都会执行的语句块。
    finalize是方法,在Object中的定义,表示垃圾回收当前对象之前会调用该方法,完成一些清理工作。

    10、throw和throws的区别:
    throw是一条语句,表示显示抛出异常的对象。
    throw new NullPointerExcetion();
    throws是方法修饰符,表示该方法可能会抛出某种异常,在调用该方法必须处理该方法所抛出的异常。
    public void test() throws Exception{}

  • 相关阅读:
    洛谷 P1019单词接龙
    洛谷 P1091合唱队列
    洛谷 P1141 01迷宫
    洛谷 P1101单词方阵
    NOIP要炸?
    洛谷 P1219八皇后
    洛谷 P1181数列分段Section I
    刷普及-刷爆了。。。。。。
    洛谷 P3952时间复杂度 (本地AC测评RE的伪题解)
    动态数码管
  • 原文地址:https://www.cnblogs.com/LYL6868/p/8846046.html
Copyright © 2011-2022 走看看