作为一名开发人员,在开发过程中,我们不免会遇到Bug,从而导致程序奔溃。这个时候我们的开发环境就会报出Exception或者Error错误了,今天在这里,笔者想要跟大家浅谈一下Exception。
我们都知道Exception和Error都是继承自Throwable类的。而作为Exception都有哪些种类的Exception会导致触发Expection。笔者大概总结了一下大概有25种Exception,下面我们就逐一去认识一下这些Exception吧。
1、RuntimeException
运行时异常,这个异常通常都会是其他的异常导致的,比如说NullPointerException等。这个时候我们想要解决RuntimeException往往不是直接解决RuntimeException而是解决导致RuntimeException的其他异常,比如说NullPointerException,当我们解决了NullPointerException的时候,自然而然的也就解决了RuntimeException。关于NullPointerException后面,我们会后介绍。
2、ArithmeticException
数学运算异常,顾名思义,出现这个异常的时候肯定使我们程序中的数学运算出现错误了,要好好检查一下数学运算部分的代码。
3、ArrayIndexOutOfBoundsException
数组越界,这个很明显就是自己不合法的索引数组了。
4、ArrayStoreException
数组存储异常,当试图将类型不兼容类型的对象存入一个Object[]数组时将引发异常。
5、ClassCastException
数据类型转换异常,发生这个,肯定是你的数据类型转换出问题了。
6、ClassNotFoundException
出现了这个异常就快去看看是不是缺少文件了,或者重新编译一下,也有可能是在编译环节出问题了,所以导致了.class文件找不到了。
7、CloneNotSupportedException
克隆不支持异常,发生这个异常的原因就是如果在没有实现Cloneable
接口的实例上调用 Object 的 clone 方法。
8、EnumConstantNotPresentException
枚举常量不存在异常。当应用试图通过名称和枚举类型访问一个枚举对象,但该枚举对象并不包含常量时,抛出该异常。
9、IllegalAccessException
违法的访问异常。当应用试图通过反射方式创建某个类的实例、访问该类属性、调用该类方法,而当时又无法访问类的、属性的、方法的或构造方法的定义时抛出该异常。
10、IllegalArgumentException
非法参数异常,此异常表明向方法传递了一个不合法或不正确的参数。
11、IllegalStateException
违法的状态异常,当在Java环境和应用尚未处于某个方法的合法调用状态,而调用了该方法时,抛出该异常。
12、IllegalThreadStateException
违法的线程状态异常,当县城尚未处于某个方法的合法调用状态,而调用了该方法时,抛出异常。
13、IndexOutOfBoundsException
索引越界异常。当访问某个序列的索引值小于0或大于等于序列大小时,抛出该异常。
14、InstantiationException
实例化异常,当试图通过newInstance()方法创建某个类的实例,而该类是一个抽象类或接口时,抛出该异常。
15、InterruptedException
被中止异常,当某个线程处于长时间的等待、休眠或其他暂停状态,而此时其他的线程通过Thread的interrupt方法终止该线程时抛出该异常。
16、NegativeArraySizeException
数组大小为负值异常。当使用负数大小值创建数组时抛出该异常。
17、NoSuchFieldException
属性不存在异常。当访问某个类的不存在的属性时抛出该异常。
18、NoSuchMethordExcepton
方法未找到异常,顾名思义,好好检查一下方法名称的拼写。
19、NullPointerException
空指针异常,常见的发生情况可能有下面这三种:
(1)字符串等数据类型没有初始化
(2)类实例(对象)有用具体的类初始化
(3)没有判断是否为空
20、NumberFormatException
字符串转换为数字异常,发生这个异常的话,大概就是你的String转化成int行的格式有问题了,去看看你的String是不是满足转化成int的要求。
21、ReflectiveOperationException
表示在反射操作中,抛出的异常,这个异常通常也会伴随着别的异常,要想解决这个异常多数情况下我们需要解决这些伴随的异常。伴随的异常具体的有ClassNotFoundException、IllegalAcessException、InstantiationException、NoSuchFieldException。
22、SecurityException
安全异常,这种情况可能就是你的环境配置问题了
23、StringIndexOutBoundsException
对String的方法进行操作时抛出的异常,比如charAt()方法,当索引超出小于0,大于或等于字符串的长度时就会抛出该异常。它是IndexOutOfBoundsException的子类。
24、TypeNotPresentException
类型不存在异常,通过反射读取注解时,会经常抛出该异常。
25、UnSupportedOperationException
Java集合操作抛出的异常。
上面就是25种异常情况,我们在不确定的,可以使用Try。。。Catch进行补货,从而增强程序的健壮性