• 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
  • 相关阅读:
    .gitignore 文件无法提交
    关于对接需求的思考
    0算法基础学算法 搜索篇第二讲 BFS广度优先搜索的思想
    Jenkins 新主题样式:jenkins-theme-v2.277
    根据swagger.json生成flutter model,暂无空安全支持
    centos下 连接sqlserver (provide:SSL Provider,error:31
    .net core 中实现一个堆结构
    .net 程序员的centos命令总结
    Spring Cloud 整合 Feign 的原理
    聊聊 Feign 的实现原理
  • 原文地址:https://www.cnblogs.com/hesier/p/5627295.html
Copyright © 2020-2023  润新知