Error(错误)和 Exception(异常)都是 java.lang.Throwable 类的子类,在 Java 代码中只有继承了 Throwable 类的实例才能被 throw 或者 catch。

Exception 和 Error 体现了 Java 平台设计者对不同异常情况的分类,Exception 是程序正常运行过程中可以预料到的意外情况,并且应该被开发者捕获,进行相应的处理。Error 是指正常情况下不大可能出现的情况,绝大部分的 Error 都会导致程序处于非正常、不可恢复状态。所以不需要被开发者捕获。

Error 错误是任何处理技术都无法恢复的情况,肯定会导致程序非正常终止。并且 Error 错误属于未检查类型,大多数发生在运行时。Exception 又分为可检查(checked)异常和不检查(unchecked)异常,可检查异常在源码里必须显示的进行捕获处理,这里是编译期检查的一部分。不检查异常就是所谓的运行时异常,通常是可以编码避免的逻辑错误,具体根据需要来判断是否需要捕获,并不会在编译器强制要求。

如下是常见的 Error 和 Exception:

1 . 运行时异常(RuntimeException):

 NullPropagation:空指针异常;ClassCastException:类型强制转换异常IllegalArgumentException:传递非法参数异常IndexOutOfBoundsException:下标越界异常NumberFormatException:数字格式异常

2 . 非运行时异常:

 ClassNotFoundException:找不到指定 class 的异常IOException:IO 操作异常

3 . 错误(Error):

 NoClassDefFoundError:找不到 class 定义异常StackOverflowError:深递归导致栈被耗尽而抛出的异常OutOfMemoryError:内存溢出异常

下面代码会导致 Java 堆栈溢出错误。

// 通过无限递归演示堆栈溢出错误
class StackOverflow {public static void test(int i) {if (i == 0) {return;} else {test(i++);}}
}public class ErrorEg {public static void main(String[] args) {// 执行StackOverflow方法StackOverflow.test(5);}
}

运行输出为:

Exception in thread "main" java.lang.StackOverflowErrorat ch11.StackOverflow.test(ErrorEg.java:9)at ch11.StackOverflow.test(ErrorEg.java:9)at ch11.StackOverflow.test(ErrorEg.java:9)at ch11.StackOverflow.test(ErrorEg.java:9)

上面代码通过无限递归调用最终引发了 java.lang.StackOverflowError 错误。

Java中Error和Exception的异同相关推荐

  1. java中Error与Exception有什么区别

    Error类和Exception类都继承自Throwable类. Error的继承关系: java.lang.Object   java.lang.Throwable       java.lang. ...

  2. java中error和exception的区别

    Error类和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等.对于这类错误的导致的应用 ...

  3. JAVA中常见的Exception

    这篇文章转载自 : JAVA中常见的Exception 常见的几种如下: NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异常. I ...

  4. Java中的异常 Exception

    Java中的异常 Exception java.lang.Exception类是Java中所有异常的直接或间接父类.即Exception类是所有异常的根类. 比如程序: public class Ex ...

  5. java error与exception_Java中Error与Exception的区别

    Error类和Exception类都继承自Throwable类. Error的继承关系: Exception的继承关系: 二者的不同之处: Exception: 1.可以是可被控制(checked) ...

  6. 1.3 Error和Exception的异同

    Error(错误)和 Exception(异常)都是 java.lang.Throwable 类的子类,在 Java 代码中只有继承了 Throwable 类的实例才能被 throw 或者 catch ...

  7. java中的print println printf 异同

    转自 https://blog.csdn.net/qq_40077114/article/details/81169512 println在JAVA中常常使用System.out.pirntf():的 ...

  8. 异常中error和exception有什么区别?

    error类对象由java虚拟机生成并抛出,如系统崩溃,内存溢出,对这类错误导致的应用程序中断,仅靠程序本身是无法恢复和预防的 exception类表示程序可以处理的异常,可以捕获,且能恢复

  9. java异常库,java中的异常详解

    java中的exception关系图如图下图所示: Throwable 是Exception(异常)和Error(错误)的超类!! 两者的区别: Exception表示程序需要捕捉和处理的的异常; E ...

最新文章

  1. 使用CFree调用Win32 LoadLibrary 简单示例
  2. Windows四大傻X功能——那些拖慢系统性能的罪魁祸首
  3. 存储过程和SQL语句比较【转】
  4. android accessibilityservice自动点击_【Android】无障碍服务(一)入门轻踩
  5. 旧项目适配iphone6和iphone plus
  6. iOS HTML标签字符实体,转译字符串归类大全 【转载】
  7. python的多行语句可以使用反斜杠_python 为什么不用分号作终止符?
  8. 高仿wx钱包页H5网站源码
  9. PHP实现上升沿,可编程控制器(PLC)编程如何使用ST语言实现上升沿和下降沿触发...
  10. 输入图像四通道 输出图像四通道
  11. 中小企业如何建立商业智能
  12. TP5开源微信小程序商城源码+附安装文档
  13. 【愚公系列】2022年02月 Django商城项目 29-商品浏览历史记录功能实现
  14. php的include once,php include_once的使用方法详解
  15. linux查看cpu架构命令,linux查看cpu型号命令
  16. 剑指offer20题——leetcode主站65题
  17. 微信小程序点赞+取消点赞多项点击
  18. 【模型库】龙门铣床三维模型(具有x_t通用格式)
  19. python pta实验八
  20. 软件工程一位大三学生成功上大学的案例

热门文章

  1. c语言error ld returned,[Error] ld returned 1的错误
  2. 如何在不丢失文件的情况下快速重置Win11
  3. Win7提示文件太大无法放入回收站怎么办
  4. UC浏览器怎么删除收藏历史?UC浏览器删除收藏历史的操作方法
  5. lambda里面赋值局部变量必须是final原因
  6. java使用Socket类接收和发送数据
  7. 华为笔记本matebook13_华为引领“第三代移动办公”新纪元 华为MateBook开启“智慧化办公”新赛道...
  8. python操作word文档中的图片_Python操作word文档插入图片和表格的实例演示
  9. java store()_Java.util.Properties.store()
  10. java 记事本编译_肿么用记事本编译运行java程序代码?