Java Exception:
- Error
- Runtime Exception 运行时异常
- Exception
- throw 用户自定义异常
异常类分两大类型:Error类代表了编译和系统的错误,不允许捕获;Exception类代表了标准Java库方法所激发的异常。Exception类还包含运行异常类Runtime_Exception和非运行异常类Non_RuntimeException这两个直接的子类。
运行异常类对应于编译错误,它是指Java程序在运行时产生的由解释器引发的各种异常。运行异常可能出现在任何地方,且出现频率很高,因此为了避免巨大的系统资源开销,编译器不对异常进行检查。所以Java语言中的运行异常不一定被捕获。出现运行错误往往表示代码有错误,如:算数异常(如被0除)、下标异常(如数组越界)等。
非运行异常时Non_RuntimeException类及其子类的实例,又称为可检测异常。Java编译器利用分析方法或构造方法中可能产生的结果来检测Java程序中是否含有检测异常的处理程序,对于每个可能的可检测异常,方法或构造方法的throws子句必须列出该异常对应的类。在Java的标准包java.lang java.util 和 java.net 中定义的异常都是非运行异常。
常见异常:
- 算术异常类:ArithmeticExecption
- 数组负下标异常:NegativeArrayException
- 数组下标越界异常:ArrayIndexOutOfBoundsException
- 文件已结束异常:EOFException
- 文件未找到异常:FileNotFoundException
- 操作数据库异常:SQLException
- 输入输出异常:IOException
- 空指针异常类:NullPointerException
当应用试图在要求使用对象的地方使用了null时,抛出该异常。譬如:调用null对象的实例方法、访问null对象的属性、计算null对象的长度、使用throw语句抛出null等等。 - 类型强制转换异常:ClassCastException
假设有类A和B(A不是B的父类或子类),O是A的实例,那么当强制将O构造为类B的实例时抛出该异常。该异常经常被称为强制类型转换异常。 - 未找到类定义错误:NoClassDefFoundError
当Java虚拟机或者类装载器试图实例化某个类,而找不到该类的定义时抛出该错误。 - 方法不存在错误:NoSuchMethodError
当应用试图调用某类的某个方法,而该类的定义中没有该方法的定义时抛出该错误。 - 内存不足错误 OutOfMemoryError
当可用内存不足以让Java虚拟机分配给一个对象时抛出该错误。
代码中存在死循环,(处理循环)启动参数设定过小(设定服务器的启动参数增大),内存中一次加载的数据量过于庞大(减少一次加载的数据),集合类应用的对象未回收(手动回收未回收对象) - 数字格式异常 NumberFormatException
当试图将一个String转换为指定的数字类型,而该字符串确不满足数字类型要求的格式时,抛出该异常
404。路径错误。出现404一定是你的请求路径有问题,接口地址没找到,或者文件路径不存在。