java.lang
- NullPointerException :空指针异常(出现条件:使用对象(字段/方法)值为null时)
- ArrayIndexOutOfBoundsException /IndexOutOfBoundsException:数组下标越界异常(出现条件:使用超出数组下标范围的下标)
- NumberFormatException :数字格式化异常(出现条件:不符合转换格式的字符串被转换成数字时)
- ClassCastException :类型转换异常(出现条件:将一个类型转换成另一个类型,两个类型没有继承关系)
- ArithmeticException : 数学运算异常 (出现条件: ex:/by zero)
- NoSuchFieldException:①没有对应字段;②属性为私有时获取Field用的方法不是getDeclaredField
- NoSuchMethodException:方法未找到异常
- NumberFormatException:字符串转换为数字异常、数据格式异常
- IllegalArgumentException:非法参数异常,比如一个方法是getXXX(String id,String num)最多传入两个参数,我们在调用接口传参时传入了3个参数或者以上,就会出现这个错误
- IllegalAccessException:这个异常的解释是 “没有访问权限 “,当应用程序要调用一个类,但当前的方法即没有对该类的访问权限便会出现这个异常。对程序中用了Package的情况下要注意这个异常。
- IllegalStateException:该异常表示,当前对客户端的响应已经结束,不能在响应已经结束(或说消亡)后再向 客户端(实际上是缓冲区)输出任何内容
IncompatibleClassChangeError:①项目中导入的jar包冲突,②maven项目中同一个依赖有两个不同的版本号- InstantiationException:不能实例化某个对象,一般在我们使用java反射机制去创建某个对象的时候实例化到了一个抽象类或者接口(java中抽象类和接口是不能被实例化)
- InterruptedException:当阻塞方法收到中断请求的时候就会抛出InterruptedException异常
- NegativeArraySizeException:如果应用程序试图创建大小为负的数组,则抛出该异常
- SecurityException:启动另外一个app时候报没有权限的错误
- StackOverflowError:函数调用栈太深了,注意代码中是否有了循环调用方法而无法退出的情况,在jvm运行时的数据区域中有一个java虚拟机栈,当执行java方法时会进行压栈弹栈的操作。在栈中会保存局部变量,操作数栈,方法出口等等。jvm规定了栈的最大深度,当执行时栈的深度大于了规定的深度,就会抛出StackOverflowError错误。
- StringIndexOutOfBoundsException:字符串截取下标越界
- BusinessException:自定义业务异常
java.sql
- SQLException:操作数据库异常,通常用于写sql时抛出的异常
- SQLTimeoutException:sql执行超时
java.text
- ParseException : 解析异常(出现条件:需要转换成Date的字符串内容,不符合SimpleDateFormat对象指定的格式)
java.io
- IOException:输入输出异常,一般读写会出现这个异常,比如你想从磁盘读取一个文件到你写的程序中,如果程序中没有这文件,java虚拟机就会报这个异常
- FileNotFoundException:文件未找到异常
- CharConversionException:可能是对所传参数时字符编码解析失败
- ObjectStreamException:该类表示读取对象操作失败,原因是无法读取流中对象的基本数据或者是序列化对象的末尾数据,该异常会因两种原因被抛出:①企图读取的对象下一部分是基础数据,在这种情况下,OptionalDataException的长度字段将会被设置为立刻可从流中读出的基础数据字节数,文件结束字段为false,②企图使用类声明的readObject或者readExternal方法来读取数据末尾后的部分。在这种情况下,文件结束字段会被设置为true,并且长度字段设置为0
- InvalidClassException:可能是序列化兼容性所致
- NotActiveException:当序列化和反序列化不活动时抛出
- NotSerializableException:该异常是指传输的对象类型不可序列化,要使用对象流传输的对象的类必须实现Serializable接口
java.net
- BindException:端口被占用【java.net.BindException:Address already in use: JVM_Bind】
- SocketException:
- java.net.SocketException: Connection refused: connect。具有ip地址的机器不能找到,或者是该ip存在,但找不到指定的端口进行监听
- java.net.SocketException: Socket is closed。该异常在客户端和服务器均可能发生。异常的原因是己方主动关闭了连接后(调用了Socket的close方法)再对网络连接进行读写操作。
- SocketTimeoutException:客户端没有在限定的时间内将数据发送给服务器,服务器为了保证服务性能,认定那个连接已经失效【java.net.SocketTimeoutException.Read timed out】
- ConnectException:【java.net.ConnectException: Connection refused: no further information】
- 看你的host和port是否写错了,如 [ 127.0.0.1:8080 ]
- 如果检查自己写的socket
- 可能是防火墙的原因,关闭防火墙试试
- 看你的server是否真正的运行起来了,比如server在启动过程某些组件加载异常,会导致服务启动不成功。
- ......