You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
5 lines
1.9 KiB
5 lines
1.9 KiB
2026年4月16日,我完成了Java异常处理的课堂练习,期间与AI助手Kimi进行了多轮协作。最初,我上传了课堂PPT的照片,询问任务要求。AI迅速识别出这是一个重构"裸奔"代码的练习,原始代码直接使用BufferedReader读取文件并计算平均分,但完全没有异常处理,存在三个明显问题:没有处理文件不存在的情况、读取错误时没有关闭资源、以及未处理数字格式错误。
|
|
在明确任务后,我向AI询问了需要捕获哪些异常。AI详细解释了三种必须处理的异常类型:FileNotFoundException用于处理文件不存在的情况,IOException处理读取过程中的I/O错误,NumberFormatException处理解析非数字内容时的格式错误。AI还特别提醒了捕获顺序的重要性,FileNotFoundException作为IOException的子类必须写在前面,否则会导致编译错误。
|
|
为了测试代码的健壮性,我请AI生成了一个包含边界情况的测试文件scores.txt。AI设计的数据包含8个有效成绩和3个异常触发点,分别是非数字字符串"abc"、空行和小数"100.5",这样可以全面验证异常处理是否能正确跳过错误行并继续处理后续数据。
|
|
在实际编写代码时,我遇到了编译错误,将FileReader误写成了小写的filereader。AI通过我上传的报错截图迅速定位了问题,指出Java类名必须严格区分大小写,并提供了修正后的完整代码。最终,我使用try-with-resources语法重构了代码,不仅实现了三种异常的完整捕获,还确保了资源会被自动关闭,满足了课堂练习的所有要求。
|
|
通过这次协作,我掌握了try-with-resources的正确用法,理解了异常捕获的顺序规则,也深刻意识到Java语法中大小写的严格性。同时,AI协助我设计的测试用例让我学会了如何考虑边界情况,使代码更加健壮可靠。
|