Java异常汇总

Java Exception

1.数组的异常:
ArrayIndexOutOfBoundsException:数组索引越界异常原因:访问了不存在的索引
NullPointerException:空指针异常原因:数组不在指向堆内存了。而我们还用数组名去访问元素
*积累自己问题总结:现象,原因,解决方案。
2.字符串异常:
stringindexoutofboundexception:
Java API指出StringIndexOutOfBoundsException异常
     Thrown by String methods to indicate that an index is either negative or greater than the size of the string. For some methods such as the charAt method。
上面的错误是因为当String.length()<10;而我们又要使用Java中的方法(比如:subString()方法),取index>=10的字符,从而抛出上面异常String其实是没有限制的,而是当String太大了,超过JVM的自身的内存后会抛出java.lang.OutOfMemoryError错误
3.类中发生的异常

  ClassCastException是JVM在检测到两个类型间转换不兼容时引发的运行时异常。此类错误通常会终止用户请求。在执行任何子系统的应用程序代码时都有可能发生ClassCastException异常。通过转换,可以指示Java编译器将给定类型的变量作为另一种变量来处理。对基础类型和用户定义类型都可以转换。Java语言规范定义了允许的转换,其中大多数可在编译时进行验证。不过,某些转换还需要运行时验证。如果在此运行时验证过程中检测到不兼容,JVM就会引发ClassCastException异常。例如:

Fruit f;

Apple a = (Apple)f;

当出现下列情况时,就会引发ClassCastException异常:

(1)Fruit和Apple类不兼容。当应用程序代码尝试将某一对象转换为某一子类时,如果该对象并非该子类的实例,JVM就会抛出ClassCastException异常。

(2)Fruit和Apple类兼容,但加载时使用了不同的ClassLoader。这是这种异常发生最常见的原因。在这里,需要了解一下什么是ClassLoader?

4.输入异常

InputMismatchException:输入的和你想要的不匹配

5.迭代器出现的异常

NoSuchElementException:没有这样的元素,在迭代器使用过程中抛出异常,原因可能是已经找到最后一个,或者多次使用next()方法

6.并发修改异常

ConcurrentModificationException:当方法检测到对象的并发修改,但不允许这种修改时,抛出此异常。

7.正则表达式异常

PatternSyntaxException是一个未经检查的异常,表明正则表达式模式中的语法错误



你可能感兴趣的:(成长路程)