java常见异常

Java 中的异常体系非常庞大,但主要分为两大类:检查型异常和非检查型异常,后者通常包括运行时异常和错误(Errors)。整理出一些常见的异常

检查型异常

这些异常在编译时就必须被处理(通过try-catch块捕获或声明抛出)。

  • IOExcepton:
    • 当发生输入输出错误时抛出。这个异常是所有输入输出异常的基类,用于处理文件读写、网络通信等输入输出操作中的错误。
  • SQLException
    • 当使用JDBC进行数据库操作时遇到问题时抛出。这个异常提供了数据库错误的信息,包括SQL状态码、错误码和错误消息等。
  • ClassNotFoundException
    • 当应用程序试图加载类,但在类路径中找不到相应的类定义时抛出。这通常发生在动态加载类时,如使用Class.forName()方法。
  • InterruptedException
    • 当线程在等待、睡眠或被其他线程中断时抛出。这个异常用于表示线程在等待过程中被中断,需要线程处理中断逻辑。
  • FileNotFoundException
    • 当试图打开指定路径的文件时,如果文件不存在,则抛出此异常。它是IOException的一个子类。

运行时异常

  • NullPointerException
    • 当应用程序试图在需要对象的地方使用null时抛出。这是最常见的运行时异常之一,通常是因为没有正确地初始化对象。
  • ArrayIndexOutOfBoundsException
    • 当访问数组的索引超出其界限时抛出。这个异常通常是因为数组索引计算错误或越界访问。
  • ArrayStoreException
    • 当试图将类型为不兼容类型的对象存入一个对象数组时抛出。例如,尝试将字符串存入一个整数数组中。
  • ClassCastException
    • 当尝试将对象强制转换为不是实例的子类时抛出。这个异常通常发生在类型转换错误的情况下。
  • IllegalArgumentException
    • 当向方法传递非法或不适当的参数时抛出。这个异常用于表示方法接收到了无效或不合适的参数。
  • IllegalStateException
    • 当在非法或不适当的时间调用方法时抛出。这个异常通常用于表示对象的状态不允许执行该方法。
  • StringIndexOutOfBoundsException
    • 当使用索引值访问字符串中的字符时,如果索引值无效(即小于0或大于等于字符串长度),则抛出此异常。
  • NumberFormatException
    • 当尝试将字符串转换为一种数值类型,但该字符串没有有效的格式时抛出。这个异常通常用于处理字符串到数字的转换错误。
  • ConcurrentModificationException
    • 当在迭代过程中(如使用for-each循环或迭代器)以非线程安全的方式修改集合时抛出。这个异常用于并发修改检测。

错误

  • OutOfMemoryError
    • 当JVM没有足够的内存来为对象分配内存时抛出。这个错误通常发生在堆内存耗尽时,是严重的资源问题。
  • StackOverflowError
    • 当应用程序递归太深而导致调用栈溢出时抛出。这个错误通常发生在无限递归或深层递归调用中。
  • NoClassDefFoundError
    • 当Java虚拟机试图加载类(在运行时,而不仅仅是编译时),但未找到时抛出。这个错误通常发生在类路径设置不正确或类文件损坏时。
  • LinkageError
    • 这是一个链接时错误的基类,包括ClassCircularityErrorNoClassDefFoundErrorNoSuchFieldError等。它表示类定义中存在一些不兼容的类版本或依赖问题。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值