一、The Checked Exception(检查异常)
常见的检查异常有:
1. SQLException
提供有关数据库访问错误或其他错误的信息的异常。( 如SQL语句写错,访问的表不存在,连接数据库失败等等)
2. IOException
表示发生了某种I / O异常的信号。此类是由失败或中断的I / O操作产生的一般异常类。( 广泛的说,什么时候会有IOException ,比如你文件读不到的时候 ,你在做数据库操作的时候数据库底层出现问题 ,或者你系统IO出问题了 ,系统拿不到文件句柄 )
3. FileNotFoundException
(IOexception的子类) 当试图打开指定路径名表示的文件失败时,抛出此异常。
4. ClassNotFoundException
找不到具有指定名称的类的定义。( 在classloader加载类的时候发现类不存在在类路径的时候报出的。)
5. EOFException
(IOexception的子类) 当输入过程中意外到达文件或流的末尾时,抛出此异常。( 一般是因为阻塞引起的,因为server的input.read读不到东西就会阻塞,当你关掉client的时候,server就知道没有东西进来了,所以就报了个异常,其实这个是正常的,只是告诉你,该把socket关闭一下,还有input也关闭一下。)
Unchecked Exception(不可检查异常):包括包括运行时异常(RuntimeException与其子类)和错误(Error[比较严重的,程序无法处理的,比如OOM,栈溢出])
二、RuntimeException
1. ArrayIndexOutOfBoundsException
用非法索引访问数组时抛出的异常。如果索引为负或大于等于数组大小,则该索引为非法索引。
2. ArithmeticException :当出现异常的运算条件时,抛出此异常。
例如,一个整数“除以零”时,抛出此类的一个实例。
3. IllegaArguementException
抛出的异常表明向方法传递了一个不合法或不正确的参数。
4. NullPointerException
当应用程序试图在需要对象的地方使用 null 时,抛出该异常。
5. StringIndexOutOfBoundsException
如,System.out.println(a.substring(4)); //错误,java.lang.StringIndexOutOfBoundsException: String index out of range: -1 因为一共只有3个字母。
6. ClassCast,BufferOverflow等等。
三、Error
- StackOverFlowError
- OutOfMemorryError
- AWTError