一、编译时错误
示例报错: error: ';' expected
典型场景:
int a = 5 // 缺少分号
System.out.println(a)
解决方法:
- 检查代码行尾是否遗漏分号
- 确认所有括号
{}、圆括号()成对出现 - 使用IDE的自动错误提示功能定位问题
二、空指针异常
报错信息: java.lang.NullPointerException
触发代码:
String str = null;
System.out.println(str.length());
解决步骤:
- 检查对象初始化情况
- 添加空值判断:
if (str != null) {
System.out.println(str.length());
}
- 使用Optional类进行安全处理
三、数组越界异常
报错信息: java.lang.ArrayIndexOutOfBoundsException
错误示例:
int[] arr = new int[3];
System.out.println(arr[3]); // 有效索引为0-2
处理方案:
- 检查数组长度:
arr.length - 确保循环条件正确:
for (int i=0; i<arr.length; i++){...}
- 使用增强for循环:
for (int num : arr) {...}
四、类型转换异常
报错信息: java.lang.ClassCastException
错误代码:
Object obj = "Hello";
Integer num = (Integer) obj;
正确做法:
- 转换前进行类型检查:
if (obj instanceof Integer) {
Integer num = (Integer) obj;
}
- 使用泛型规范数据类型
五、文件操作异常
报错信息: java.io.FileNotFoundException
典型场景:
new FileInputStream("missing_file.txt");
解决方案:
- 检查文件路径是否正确(绝对/相对路径)
- 验证文件是否存在:
File file = new File(path);
if (file.exists()) {...}
- 使用try-with-resources自动关闭流:
try (FileInputStream fis = new FileInputStream(file)) {
// 操作代码
}
其他建议
- 使用IDE的Debug功能逐步排查
- 在方法开始处添加参数有效性检查
- 重要操作添加try-catch块:
try {
// 可能出错的代码
} catch (SpecificException e) {
e.printStackTrace();
// 处理异常的逻辑
}
通过结合错误堆栈信息和代码审查,可以快速定位问题根源。良好的编码习惯(如参数校验、资源管理)能有效减少运行时异常的发生。

被折叠的 条评论
为什么被折叠?



