Java Exception
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错误
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是一个未经检查的异常,表明正则表达式模式中的语法错误