Java基础之Error、Exception

只要是程序,就会有错误跟异常,Java程序也不例外!
那什么是错误,什么是异常?Java异常又可分为哪两类?

Error

VirtualMachineError(虚拟机错误)

错误一般是程序在正常条件下,是系统内部的错误或者资源耗尽的错误!常见的错误主要有两种,内存溢出和栈溢出!

  • OutOfMemoryError(内存溢出):一般是虚拟机分配的内存不能容下程序所需的数据,或者new 出的对象太多太多了(主要是堆内存或者方法区内存的不足)
  • StackOverFlowError(栈溢出):常见的就是递归循环没有出口,导致虚拟机栈记录太多东西导致溢出

AWTError

一般是调用AWT包下的类,使用操作系统的资源时出现的错误

Exception

RuntimeExcept(运行时异常,非检查异常)

这种异常在我们的程序中是最常见的:

  1. NullPointException(空指针异常)
  2. IndexOutOfBoundsException (数组下表越界)
  3. ClassCastException (强转类型是异常)
  4. ClassNotFoundException (找不到指定类)
  5. ArithmeticException (算数运算异常 如除0)
  6. NumberFormatException (String类型装数字类型异常)

    IOException (其他异常,也叫做检查异常,必须处理的异常)

  7. FileNotFoundException (文件未找到异常)
  8. EOFException (文件已经结束异常)
  9. SQLException (SQL异常)

关于检查异常跟非异常

非检查异常(unchecked exception): 包括RuntimeException和Error类的异常,对于运行时的异常,编译器不要求程序员强制捕获异常处理或者抛出异常声明
检查异常(checked exception) : 编译器强制要求程序员对异常进行捕获,比如常见的IOException和SQLException!!

总结图:

最后给一张大图完整的说明Exception和Error: