异常(是什么,为什么,分类)

异常是什么
我们还是举平时生活中的例子,比如在你小的时候家里来客人了,父母让你去买点喝的,对于我们来说买点喝的我们是可以自己解决的,但是可能遇到了一些问题,就是我们平时所说的异常,比如我们碰到了商店关门的异常。遇到这个异常我们有两种方法,一种是我们自己解决,就是我们平时的trycatch语句,比如我们可以自己换一家商店,亦或是我们干脆回家叫个外卖。
另一种则是我们把这个异常throw给上级,就是把这个异常告诉我们的父母让他们来处理。他们就会决定怎么处理这个异常,比如他们会自己点个外卖,或者你老爸会告诉你他经常去的另一家店,让你再去买。总之这就是异常,下面我们用专业的语句来定义一下异常。
当代码执行的过程中或者写代码的时候,出现了一些问题,那么这些问题称为异常。

为什么会有异常呢
程序设计过程中,可能因为逻辑原因(业务设计的问题),代码不符合规范,一些硬件不满足需求等,都可能出现异常。

异常的分类
这里我们先分一下错误和异常:
在这里插入图片描述
Throwable 是所有异常和错误的超类
Error 错误 一般意味无法恢复或者难以恢复的问题
Exception 异常 程序编写或者运行时出现的异常
编译异常IOException 在程序编写的时候就要求进行处理的异常,一般不是因为程序的原因造成,可能因为一些环境原因,比如FileNotFoundException
运行时异常 RuntimeException 一般因为程序的逻辑或者业务造成,编写的时候不要求强制处理,运行的时候才会触发,程序员可以处理。也就是说一个理想的程序,不应该有运行时异常
要求记住的异常
java.lang.ArithmeticException 运算异常 比如整数相除,除数为0
java.lang.ClassCastException 类型强制异常
java.lang.IllegalArgumentException 参数异常
IllegalStateException 状态异常
java.lang.IndexOutOfBoundsException 越界异常
java.lang.ArrayIndexOutOfBoundsException 数组越界
java.lang.StringIndexOutOfBoundsException 字符串越界
java.lang.NegativeArraySizeException 试图用负数创建数组
java.util.NoSuchElementException 没有元素异常
java.lang.NullPointerException 空指针异常(找不到对象)
java.lang.NoSuchMethodException 没有这个方法

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值