1. NullPointerException(空指针异常)
原因:试图访问或调用一个null对象的属性或方法(如String str = null; System.out.println(str.length());)。
解决方法:使用前检查对象是否为null(如if(str != null) {...});使用Optional类避免直接操作null;通过Objects.requireNonNull()进行显式空检查。
2. ArrayIndexOutOfBoundsException(数组越界异常)
原因:访问数组时索引超出有效范围(如int[] arr = {1,2,3}; System.out.println(arr[3]);,有效索引为0-2)。
解决方法:访问数组前检查索引范围(如if(index >= 0 && index < arr.length) {...});优先使用增强for循环或List替代数组。
3. ClassNotFoundException(类未找到异常)
原因:程序尝试加载不存在的类(如类路径classpath配置错误、依赖库缺失)。
解决方法:检查类路径是否包含所需类文件;确认所有依赖库(如JAR包)已正确添加到项目中。
4. SQLException(SQL异常)
原因:操作数据库时发生错误(如SQL语法错误、数据库连接失败、表不存在)。
解决方法:检查SQL语句语法;验证数据库连接配置(URL、用户名、密码);确认数据库服务是否正常运行;查看数据库日志获取详细错误信息。
5. ArithmeticException(算术异常)
原因:执行非法算术操作(最常见的是除以零,如int result = 10 / 0;)。
解决方法:在执行除法前检查除数是否为零(如if(divisor != 0) {...});对可能出现的异常情况进行逻辑处理。
6. OutOfMemoryError(内存溢出错误)
原因:JVM无法分配更多内存(如堆内存设置过小、内存泄漏导致对象无法被回收)。
解决方法:增加JVM堆内存大小(通过-Xmx设置最大堆内存,-Xms设置初始堆内存,如java -Xmx2g -Xms1g -jar app.jar);排查内存泄漏(使用工具如VisualVM、MAT分析堆转储文件)。
7. FileNotFoundException(文件未找到异常)
原因:试图打开不存在的文件或路径错误(如FileReader reader = new FileReader("nonexistent.txt");)。
解决方法:检查文件路径是否正确;确认文件是否存在;使用File.exists()方法提前验证文件是否存在。
8. NumberFormatException(数字格式异常)
原因:将非数字字符串转换为数字类型失败(如int num = Integer.parseInt("abc");)。
解决方法:使用前验证字符串是否为有效数字(如正则表达式"\\d+"匹配整数);捕获异常并提供默认值(如try-catch块中设置num = 0)。