
异常,就是犯错,我们程序员,错了就得改!
检查性异常:最具代表的检查性异常是用户错误或问题引起的异常,这是程序员无法预见的。
运行时异常: 运行时异常是可能被程序员避免的异常。与检查性异常相反,运行时异常可以在编译时被忽略。
错误: 错误不是异常,而是脱离程序员控制的问题。错误在代码中通常被忽略。例如,当栈溢出时,一个错误就发生了,它们在编译也检查不到的。

运行时异常:
为啥我要先讲运行时异常?因为运行时异常是可以被我们避免的,catch这类错误本身就是不好的,我们应该避免这类错误,比如数组越界,是可以避免的如果你非要去catch,就是不好的行为。
首先,我们先写个主方法方便统一catch,然后逐个讲解如何实现此类异常

下面开始:
1、ArrayStoreException
public
往一个数组里放了一个不应该放的东西
2、FileNotFoundException
public
文件找不到,对路径就是我瞎写的
3、ArithmeticException
public
计算错误,傻子才会把0当分母,没啥好分的对吧
4、ClassCastException
public
非得把空对象当字符串打印,java不知道咋搞了
5、ArrayIndexOutOfBoundsException
这一条我都懒得打代码,直接翻译一下
6、IllegalArgumentException
public
就传参有问题呗,这个挺难写的
7、IllegalMonitorStateException
public
这货想调用等待方法,但是他并没有“锁”
8、IllegalStateException
“覆水难收”,当我们意图在一个已经关闭的流中追加信息的时候,或是意图修改已经发出去的请求的请求头时就会有这个报错
9、IllegalThreadStateException
public
你试图启动一辆已经启动的车子
10、IndexOutOfBoundsException
public
这个为啥我要说一下呢?这个和前面的一块儿说,大家看这个代码肯定小小的脑袋里装满了疑惑,都是拿错的,为啥顶上的就是Array,下面的就是index

get的时候他会先去检查

检查不到就报错
你大可理解为,前面的,单纯就是取值取不到报错,后面这个,一般是个过程稿,比如我要排序的时候发现我找的那个值有问题,上图这个是在判断数据有没有的时候发现要找的值不存在,而不是直接返回。
11、NegativeArraySizeException
如果应用程序试图创建大小为负的数组,则抛出该异常,大家自己回去写吧。
12、NullPointerException
当应用程序试图在需要对象的地方使用 null 时,抛出该异常,正常的程序员都遇到过。
13、NumberFormatException
public
格式不对,转不成正确的数字。
14、SecurityException
由安全管理器抛出的异常,指示存在越权行为,安全处理器我们后面单独开一章来讲。
15、StringIndexOutOfBoundsException
和之前的数组差不多,不过这次是字符串
16、UnsupportedOperationException
public
这就不行,因为list的add是假的

怎么行呢?这样
public
我们来看一下arrayList的add

好了,以上
最后点一下题,送大家一句话:
如果犯错是成长的过程,那么改错就是成熟的过程,犯错和改错之间,我们却忽略了认错。不肯承认自己的平凡,自以为伟大,自以为成熟,自以为圣贤,闭着眼睛是打不开下一扇门的。没必要向现实邀功,也不必向过往道歉,愿你我都是鲁莽的少年。