• Java 的Throwable、error、exception的区别


    1.   什么是异常?

       异常本质上是程序上的错误,包括程序逻辑错误和系统错误。比如使用空的引用(NullPointerException)、数组下标越界(IndexOutOfBoundsException)、内存溢出错误等。Throwable 类是 Java 语言中所有错误或异常的超类。有两个重要的子类:Exception(异常)和 Error(错误),二者都是 Java 异常处理的重要子类,各自都包含大量子类。

    2.  Error

       是程序无法处理的错误,表示运行应用程序中较严重问题。大多数错误与代码编写者执行的操作无关,而表示代码运行时 JVM(Java 虚拟机)出现的问题。 例如,Java虚拟机运行错误(Virtual MachineError),当 JVM 不再有继续执行操作所需的内存资源时,将出现 OutOfMemoryError。这些异常发生时,Java虚拟机(JVM)一般会选择线程终止。这些错误表示故障发生于虚拟机自身、或者发生在虚拟机试图执行应用时,如Java虚拟机运行错误(VirtualMachineError)、类定义错误(NoClassDefFoundError)等。

    3.  异常和错误的本质区别:异常能被程序本身处理,而错误无法处理。Error是可以catch的,而且也可以向常规Exception一样被处理,而且就算不捕捉的话也只是导致当前线程挂掉,其他线程还是可以正常运行,如果有需要的话捕捉Error之后也可以做些其他处理。但是Error是一种系统内部的错误,这种错误不像Exception一样是可能是程序和业务上的错误是可以恢复的。

       怎么catch?catch throwable会把Error和其他继承Throwable的类捕捉到。而catch Exception只会捕捉Exception极其子类,捕捉的范围更小。

  • 相关阅读:
    透视分析
    仪表分析
    sql查询和预览界面,在预览界面选择图表最后进行导出数据和图表到excel
    可视化查询
    创建数据源
    Smartbi使用Oracle RAC数据库做知识库
    反应器(Reactor)模式
    Netty:EventLoopGroup
    ShuffleTest java 使用集合的方式进行排序
    MapTest java 核心编程
  • 原文地址:https://www.cnblogs.com/jkzr/p/10723224.html
Copyright © 2020-2023  润新知