zoukankan      html  css  js  c++  java
  • 异常处理

    我们写的程序在运行的过程中,常常会发生异常,导致程序无法得到我们想要的结果,我们也不知道问题究竟出在了那里,但是学习了异常之后,就会发现有些异常是可以避免的,我们也可以知道其产生的具体原因,而将异常处理应用于我们所写的程序中,会使我们写的程序更具有高效性和健壮性。(图源网络,侵删哦)

    1.异常概述

    异常:在程序开发过程中,可能存在各种错误,有些错误是可以避免的,而有些错误时意想不到的,Java中把这可能发生的错误称为异常。

    如图所示为异常类的继承关系:

     2.异常的分类

    Java中捕获的异常分为可控式异常和运行时异常。

    1)可控式异常:通常是可以预知的错误,在程序编译时就可以对程序中的错误进行处理,并给出具体错误信息。

    常见的可控式异常:IOException  、SQLException、ClassNotFoundException、NoSuchFieldException、NoSuchMethodException。

    2)运行时异常:不能被编译器检测到的异常。

    常见的运行时异常:IndexOutOfBoundsException、NullPointerException、ArithmeticException、illegalArgumentException、ClassCastException。

    3.获取异常信息

     4.处理异常

    1)try-catch处理异常

    2)try-catch-finally处理异常

    3)try-finally处理异常

    一般来说:

    try和catch之间的 {} 中是需要正常处理但又可能发生过异常的语句;

    catch之后()内是需要处理的异常类型;

    catch之后 {} 是对程序发生的异常处理的语句;

    finally后的{}内的语句,如果JVM不关闭,无论程序是否发生异常都会被执行。

     

     

    ***注意***

    以下四种特殊情况,finally块不会被执行

    *在finally语句中发生了异常

    *在前面的代码里里使用了System.exit()退出程序

    *程序所在的线程死亡

    *关闭CPU

    5.抛出异常

    处理异常除了使用try-catch等外,还可以使用throws声明或throw语句抛出异常。

    1)使用throws声明抛出异常

    throws 用来标明一个成员函数可能抛出的各种“异常”。出现在方法的声明中。

    2)使用throw语句抛出异常

    throw : 在方法中,将产生的异常抛出(强调的是动作),抛出的既可以是异常的引用,也可以是异常对象。

    6.自定义异常

    1)创建自定义异常,

    创建自定义异常需要继承自Exception类,并提供一个含有String类型形参的构造方法,该形参就是异常的描述信息,该形参就是异常的描述信息, 可以通过getMessage()方法获得。

    2) 使用自定义异常类

     

  • 相关阅读:
    [ZZ]C++中,引用和指针的区别
    面试总结之JAVA
    LeetCode 347. Top K Frequent Elements
    LeetCode 342. Power of Four
    腾讯//删除链表中的节点
    腾讯//删除链表中的节点
    腾讯//相交链表
    腾讯//相交链表
    腾讯//环形链表 II
    腾讯//环形链表 II
  • 原文地址:https://www.cnblogs.com/ywqtro/p/11774340.html
Copyright © 2011-2022 走看看