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

    Java 异常结构

    1、Throwable

      Throwable是 Java 语言中所有错误或异常的超类。
      Throwable包含两个子类: Error 和 Exception。它们通常用于指示发生了异常情况。
      Throwable包含了其线程创建时线程执行堆栈的快照,它提供了printStackTrace()等接口用于获取堆栈跟踪数据等信息。

    2、Exception 和 RuntimeException 

      RuntimeException是那些可能在 Java 虚拟机正常运行期间抛出的异常的超类。编译器不会检查RuntimeException异常。(例如,除数为零时,抛出ArithmeticException异常。RuntimeException是ArithmeticException的超类。)

    3、Error

      编译器也不会检查Error。

    Java 将可抛出(Throwable)的结构分为三种类型:被检查的异常(Checked Exception),运行时异常(RuntimeException)和错误(Error)。

    1、运行时异常 (RuntimeException及其子类都被称为运行时异常)

    2、被检查的异常(Exception类本身,以及Exception的子类中除了"运行时异常"之外的其它子类都属于被检查异常)

      此类异常,要么通过throws进行声明抛出,要么通过try-catch进行捕获处理,否则不能通过编译。

    3、错误(Error类及其子类)

    在Java中进行异常处理,对于可能会发生异常的代码,可以选择三种方法来进行异常处理:
      1)对代码块用try..catch进行异常捕获处理;
      2)在该代码的方法体外用throws进行抛出声明,告知此方法的调用者这段代码可能会出现这些异常,你需要谨慎处理。此时有两种情况:
        如果声明抛出的异常是非运行时异常,此方法的调用者必须显示地用try..catch块进行捕获或者继续向上层抛出异常。
        如果声明抛出的异常是运行时异常,此方法的调用者可以选择地进行异常捕获处理。
      3)在代码块用throw手动抛出一个异常对象,此时也有两种情况,跟2)中的类似:
        如果抛出的异常对象是非运行时异常,此方法的调用者必须显示地用try..catch块进行捕获或者继续向上层抛出异常。
        如果抛出的异常对象是运行时异常,此方法的调用者可以选择地进行异常捕获处理。

      (如果最终将异常抛给main方法,则相当于交给jvm自动处理,此时jvm会简单地打印异常信息)

    常见需要检查的异常:

    • EOFException 文件已结束异常
    • FileNotFoundException 文件未找到异常
    • SQLException 操作数据库异常
    • IOException 输入输出异常
    • NoSuchMethodException 方法未找到异常
    • ClassNotFoundException
    • NamingException
    • InterruptedException
  • 相关阅读:
    HUST 1372 marshmallow
    HUST 1371 Emergency relief
    CodeForces 629D Babaei and Birthday Cake
    CodeForces 629C Famil Door and Brackets
    ZOJ 3872 Beauty of Array
    ZOJ 3870 Team Formation
    HDU 5631 Rikka with Graph
    HDU 5630 Rikka with Chess
    CodeForces 626D Jerry's Protest
    【POJ 1964】 City Game
  • 原文地址:https://www.cnblogs.com/hesier/p/5627295.html
Copyright © 2011-2022 走看看