
1. SQLException (SQL异常) - 原因:在进行数据库操作(如执行SQL语句)时出现问题,例如SQL语法错误、数据库连接问题、事务处理异常等情况会抛出。它是与数据库交互过程中常见的异常类型。 2. ConcurrentModificationException (并发修改异常) - 原因:当一个集合(如 ArrayList 、 HashMap 等)在被一个迭代器遍历的同时,又被其他线程或者代码以不兼容的方式修改(比如直接添加或删除元素)时,就会抛出这个异常。这是为了保证集合操作的一致性和安全性。 3. OutOfMemoryException (内存溢出异常) - 原因:当Java应用程序试图使用比JVM所分配的内存更多的内存时,就会抛出此异常。这可能是因为创建了过多的对象、加载了大量的数据等原因导致内存不足。 4. StackOverflowException (栈溢出异常) - 原因:在方法调用过程中,如果递归调用没有正确的终止条件,或者方法调用层次过深(例如无限递归),就会导致栈空间被耗尽,从而抛出这个异常。栈是用于存储方法调用信息的内存区域,每个方法调用都会在栈中占用一定的空间。 5. NoSuchMethodException (没有此方法异常) - 原因:在使用反射机制访问类的方法时,如果指定的方法不存在,就会抛出这个异常。这在动态加载和调用类方法的场景中可能会遇到。 6. SecurityException (安全异常) - 原因:当违反了Java的安全策略时会抛出。例如,一个不可信的代码试图访问受限制的系统资源或者执行受限制的操作(如访问本地文件系统权限不足)时,就会触发此异常。 1. InterruptedException (中断异常) - 原因:当一个线程在等待(如处于 wait 、 sleep 或者 join 状态)或者阻塞状态时被其他线程中断,就会抛出此异常。通常用于多线程编程中,合理处理这个异常可以让线程优雅地结束或者改变执行状态。 2. FileNotFoundException (文件未找到异常) - 原因:在文件操作中,如果尝试打开或者读取一个不存在的文件,就会抛出这个异常。它是 IOException 的一种常见子类,用于明确提示文件不存在的问题。 3. MalformedURLException (URL格式错误异常) - 原因:当构造一个 URL 对象时,如果传入的字符串不符合 URL 的格式要求,就会抛出此异常。这在进行网络编程,涉及到 URL 解析和使用时可能会出现。 4. UnsupportedOperationException (不支持的操作异常) - 原因:当调用一个不被支持的方法时会抛出。例如,某些集合的只读视图调用修改操作(如 Collections.unmodifiableList 返回的列表调用 add 方法)就会产生这个异常。 5. CloneNotSupportedException (不支持克隆异常) - 原因:当一个类没有实现 Cloneable 接口,但是调用了 clone 方法时会抛出此异常。用于控制对象的克隆行为,确保只有允许克隆的对象才能进行克隆操作。