Java Exception 异常机制(4) -- RuntimeException Checked Error 不同
Java Exception 异常机制(4) – RuntimeException Checked Error 不同
lalala.大家好,我是佛系码农 Ted,一个和你一样渴望成为大牛的low级程序员!
如果以下的内容有帮到你,请一定要动动你可爱的小手指,点赞,转载,评论,帮我来个全套大保健啊~~~
一、Error
Error(错误)表示系统级的错误和程序不必处理的异常,是java运行环境中的内部错误或者硬件问题。比如:内存资源不足等。对于这种错误,程序基本无能为力,除了退出运行外别无选择,它是由Java虚拟机抛出的。
二、Exception
异常Exception又被分为两大类:Checked异常和Runtime异常
所有RuntimeException类及其子类实例被称为Runtime异常;不是RuntimeException类及其子类的异常实例则称为Checked异常
checked exception 和runtime exception在机制和逻辑俩方面有本质的区别
1. 机制方面
## 1.1 Checked Exception
产生异常,编译器强制要求进行处理,产生编译报错
处理办法:
- 当前方法明确知道如何处理该异常,程序应该使用try…catch块来捕获该异常,然后对应的catch块中修补该异常。
- 进行上抛thorws 或 thow ,交由调命令者进行处理
常见的Checked异常一般和IO相关 如:FileNotFoundException
##1.2 Runtime Exception
Runtime异常无须显式声明抛出,无须事些进行异常处理
2. 逻辑方面
我个人作为开发人员来看
checked exception 更多是开发人员事些已经知道有一定概率的异常,对这些特定的异常进行捕捉,处理,从而避免程序在异常处宕机(比如IO Exception 程序IO开销时,往往会产”不可思议”的异常),个人感觉自定义异常和此checked exception 一定程度上的功能相似
而runtime exception的产生必然会使程序中止,开发人必须停止程序后对代码进行修改,这也是程序的目的,希望错误不被隐藏 ; 就运用来看的,比如我们在调用别人封装好的方法(如jdk自带的数组类的方法),如果传入不合法的值(如产生数组越界的情况),产生不可处理的错误,抛出runtime exception,程序必然需要中止
好了,今天的分享先到这了~~~
请收下我恭敬的膝盖