Java异常浅析及常见异常

Java异常浅析及常见异常

Java异常结构

在这里插入图片描述
在Java语言中,程序执行中发生的不正常情况被称为异常;所有的异常都会继承Throwable接口,而Throwable下一层又分为两类,分别是Error和Exception。

Error

Error描述的是Java程序运行时系统内部的错误,通常会比较严重,程序只会被安全地终止,应用程序一般不会去捕获这种异常,通常为虚拟机异常,例如StackOverflowError和OOM。

Exception

Exception根据异常发生的时间可以分为两类,分别是派生于RuntimeException(运行时异常)和非派生于RuntimeException(编译时异常)两类,前者通常为程序错误导致的异常,后者通常是程序本身没有问题,由于像I/O错误等问题导致的异常。
Exception根据是否能在编译时进行检查分为受查异常和非受查异常,受查异常会在编译时被检测,如果一个方法中的代码会抛出受查异常,那么该方法就必须被throws或try-catch处理;而非受查异常不会在编译时被检测,Java中Error和Exception类的子类属于非受查异常,除此之外继承自Exception的类型为受查异常。

常见异常

  • IOException
    读写时异常
  • ClassNotFoundException
    动态加载类信息时,通过类路径没有扎到类的时候,可能是类名称或路径有问题
  • CloneNotSupportedException
    不支持克隆异常,当执行克隆方法的类没有实现或不支持cloneable接口的时候抛出
  • ArithmeticException
    除法中除数为0的时候
  • IllegalAccessException
    无访问权限
  • ClassCastException
    两个类类型转换不兼容抛出的异常
  • IllegalArgumentException
    输入不合法参数的时候
  • IllegalStateException
    在非法或不适当的时间调用方法产生的异常,例如在对客户端响应结束之后尝试向客户端输出内容
  • IndexOutOfBoundsException
    下标越界异常
  • NoSuchElementException
    由 Enumeration 的 nextElement 方法抛出,表明枚举中没有更多的元素
  • NullPointerException
    空指针异常
  • UnKnownAnnotationValueException
    指示遇到一个未知种类的注释值
  • UnknownTypeException
    指示遇到未知种类的类型
  • SQLException
    sql语句执行异常

猜你喜欢

转载自blog.csdn.net/fucccck_ly/article/details/106823566