了解运行时异常与编译期异常

异常 : 程序中发生的不正常情况,是不可避免的,但可以去解决

异常的父类都是Exception

Exception的子类又分为RuntimeException(运行时异常) 和 其他(编译期异常例如SQLException等)

除去运行期异常,其他都是编译期异常,也称为检测异常

通过上图可以看到异常间的关系

我们先来谈编译期异常 , 例 :

 

这样的程序 , 我们非要去运行的话 ,就会抛出UnsupportedEncodingException(编码不支持异常) 

 所以说,编译期异常是我们在编译期间就要去处理的,不然这种连编译都无法通过

但运行时异常就不一样了,它是可以顺利的通过编译的

例如 : 我们 定义一个这样的程序  int i = 10/0;

编译可以通过,但运行时就会出现ArithmeticException异常,因为分母是不可以为0的

int[] array = new int[5];
array[5] =5;

 上面这种则会报ArrayIndexOutOfBoundsException(数组越界异常),同样是运行时异常,是可以通过编译的

 包括空指针异常(NullPointerException),数字格式化异常(NumberFormatException)这些等等,都是运行时异常,这种问题我们是需要去写代码处理它(使用try catch 捕获等方式),在源头上是没办法去避免的

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值