Java中Error和Exception的异同
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的异同相关推荐
- java中Error与Exception有什么区别
Error类和Exception类都继承自Throwable类. Error的继承关系: java.lang.Object java.lang.Throwable java.lang. ...
- java中error和exception的区别
Error类和Exception类的父类都是throwable类,他们的区别是: Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等.对于这类错误的导致的应用 ...
- JAVA中常见的Exception
这篇文章转载自 : JAVA中常见的Exception 常见的几种如下: NullPointerException - 空指针引用异常 ClassCastException - 类型强制转换异常. I ...
- Java中的异常 Exception
Java中的异常 Exception java.lang.Exception类是Java中所有异常的直接或间接父类.即Exception类是所有异常的根类. 比如程序: public class Ex ...
- java error与exception_Java中Error与Exception的区别
Error类和Exception类都继承自Throwable类. Error的继承关系: Exception的继承关系: 二者的不同之处: Exception: 1.可以是可被控制(checked) ...
- 1.3 Error和Exception的异同
Error(错误)和 Exception(异常)都是 java.lang.Throwable 类的子类,在 Java 代码中只有继承了 Throwable 类的实例才能被 throw 或者 catch ...
- java中的print println printf 异同
转自 https://blog.csdn.net/qq_40077114/article/details/81169512 println在JAVA中常常使用System.out.pirntf():的 ...
- 异常中error和exception有什么区别?
error类对象由java虚拟机生成并抛出,如系统崩溃,内存溢出,对这类错误导致的应用程序中断,仅靠程序本身是无法恢复和预防的 exception类表示程序可以处理的异常,可以捕获,且能恢复
- java异常库,java中的异常详解
java中的exception关系图如图下图所示: Throwable 是Exception(异常)和Error(错误)的超类!! 两者的区别: Exception表示程序需要捕捉和处理的的异常; E ...
最新文章
- 使用CFree调用Win32 LoadLibrary 简单示例
- Windows四大傻X功能——那些拖慢系统性能的罪魁祸首
- 存储过程和SQL语句比较【转】
- android accessibilityservice自动点击_【Android】无障碍服务(一)入门轻踩
- 旧项目适配iphone6和iphone plus
- iOS HTML标签字符实体,转译字符串归类大全 【转载】
- python的多行语句可以使用反斜杠_python 为什么不用分号作终止符?
- 高仿wx钱包页H5网站源码
- PHP实现上升沿,可编程控制器(PLC)编程如何使用ST语言实现上升沿和下降沿触发...
- 输入图像四通道 输出图像四通道
- 中小企业如何建立商业智能
- TP5开源微信小程序商城源码+附安装文档
- 【愚公系列】2022年02月 Django商城项目 29-商品浏览历史记录功能实现
- php的include once,php include_once的使用方法详解
- linux查看cpu架构命令,linux查看cpu型号命令
- 剑指offer20题——leetcode主站65题
- 微信小程序点赞+取消点赞多项点击
- 【模型库】龙门铣床三维模型(具有x_t通用格式)
- python pta实验八
- 软件工程一位大三学生成功上大学的案例
热门文章
- c语言error ld returned,[Error] ld returned 1的错误
- 如何在不丢失文件的情况下快速重置Win11
- Win7提示文件太大无法放入回收站怎么办
- UC浏览器怎么删除收藏历史?UC浏览器删除收藏历史的操作方法
- lambda里面赋值局部变量必须是final原因
- java使用Socket类接收和发送数据
- 华为笔记本matebook13_华为引领“第三代移动办公”新纪元 华为MateBook开启“智慧化办公”新赛道...
- python操作word文档中的图片_Python操作word文档插入图片和表格的实例演示
- java store()_Java.util.Properties.store()
- java 记事本编译_肿么用记事本编译运行java程序代码?