error和exception有什么区别?

Exception 和 Error 都是继承了 Throwable 类,在 Java 中只有 Throwable 类型的实例才可以被抛出(throw)或者捕获(catch),它是异常处理机制的基本组成类型。

Exception 和 Error 体现了 Java 平台设计者对不同异常情况的分类。Exception 是程序正常运行中,可以预料的意外情况,可能并且应该被捕获,进行相应处理。

Error 是指在正常情况下,不大可能出现的情况,绝大部分的 Error 都会导致程序(比如 JVM 自身)处于非正常的、不可恢复状态。既然是非正常情况,所以不便于也不需要捕获,常见的比如 OutOfMemoryError 之类,都是 Error 的子类。

Exception 又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常在源代码里必须显式地进行捕获处理,这是编译期检查的一部分。前面我介绍的不可查的 Error,是 Throwable 不是 Exception。

不检查异常就是所谓的运行时异常,类似 NullPointerException、ArrayIndexOutOfBoundsException 之类,通常是可以编码避免的逻辑错误,具体根据需要来判断是否需要捕获,并不会在编译期强制要求。

追问:你了解哪些 Error、Exception 或者 RuntimeException?

其中有些子类型,最好重点理解一下,比如 NoClassDefFoundError 和 ClassNotFoundException 有什么区别,这也是个经典的入门题目。

原文地址:https://www.cnblogs.com/ldddd/p/11412306.html

时间: 2024-08-29 06:33:18

error和exception有什么区别?的相关文章

Throwable、Error、Exception、RuntimeException 区别 联系

转载 https://blog.csdn.net/liuj2511981/article/details/8524418 概要: 1.Throwable 类是 Java 语言中所有错误或异常的超类.它的两个子类是Error和Exception: 2.Error 是 Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题.大多数这样的错误都是异常条件.虽然 ThreadDeath 错误是一个"正规"的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕

Throwable、Error、Exception、RuntimeException 区别

1.java将所有的错误封装为一个对象,其根本父类为Throwable, Throwable有两个子类:Error和Exception. 2.Error是Throwable 的子类,用于指示合理的应用程序不应该试图捕获的严重问题.大多数这样的错误都是异常条件.虽然   ThreadDeath 错误是一个“正规”的条件,但它也是 Error 的子类,因为大多数应用程序都不应该试图捕获它.在执行该方法期间,无需在其 throws 子句中声明可能抛出但是未能捕获的 Error的任何子类,因为这些错误可

error和exception有什么区别?

Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题.比如:内存资源不足等.对于这种错误,程序基本无能为力,除了退出运行外别无选择,它是由Java虚拟机抛出的. Exception(违例)表示需要捕捉或者需要程序进行处理的异常,它处理的是因为程序设计的瑕疵而引起的问题或者在外的输入等引起的一般性问题,是程序必须处理的.Exception又分为运行时异常,受检查异常.运行时异常,表示无法让程序恢复的异常,导致的原因通常是因为执行了错误的操作,建议终止程

java中error和exception的区别

转载 :https://blog.csdn.net/lifengguo_njupt/article/details/7990485 java中error和exception的区别 Error类和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等.对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止. Exception类表示程序可以处理的异常,可

Error和Exception的区别?

Error和Exception都继承自Throwable类 二者不同之处在于: Exception: 1.可以是可控制的(checked)或是不可控制的(unchecked) 2.表示一个有程序员编写的错误 3.应该在应用程序级被处理 Error 1.总是不可控的(unchecked) 2.通常用来表示系统错误,或是底层资源错误. 3.如果可能的话应该在系统级被捕获

ERROR与EXCEPTION的区别

Throwable 是所有 Java 程序中错误处理的父类 ,有两种子类: Error 和 Exception . Error :表示由 JVM 所侦测到的无法预期的错误,由于这是属于 JVM 层次的严重错误 ,导致 JVM 无法继续执行,因此,这是不可捕捉到的,无法采取任何恢复的操作,顶多只能显示错误信息. Exception :表示可恢复的例外,这是可捕捉到的. Java 提供了两类主要的异常 :runtime exception 和 checked exception . checked

Java Error和Exception区别

Error和Exception都继承自Throwable: 二者不同之处: Exception: 1.可以是可被控制(checked)或者不可控制(unchecked): 2.表示一个由程序员导致的错误: 3.应该在应用程序级被处理: Error: 1.总是不可控制的(unchecked): 2.经常用来表示系统错误或者底层资源错误: 3.如果可能的话,应该在系统级被捕捉: Java 中定义了两类异常: 1) Checked exception: 这类异常都是Exception的子类.异常的向上

谈一谈Java中的Error和Exception

Error和Exception的联系 继承结构:Error和Exception都是继承于Throwable,RuntimeException继承自Exception. Error和RuntimeException及其子类称为未检查异常(Unchecked exception),其它异常成为受检查异常(Checked Exception). Error和Exception的区别 Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢出等.如java.lang.S

Spark - ERROR Executor: Exception in tjava.lang.OutOfMemoryError: unable to create new native thread

如果你的Spark程序在执行过程中报出如下类似的错误: ERROR Executor: Exception in task xxx in stage xxx java.lang.OutOfMemoryError: unable to create new native thread 那么可能性非常大的原因是你当前通过spark-submit或spark-sql启动的程序中开启了过多的进程,以至超过了操作系统对当前用户所允许打开的进程数的上限.确定这个问题的方法是这样的: 首先,通过命令: uli