实验报告的标题是“哈工大hit软件构造lab4实验报告”,主要涵盖了异常与错误处理、防御式编程以及测试和调试三个核心主题。这是一份针对2020年春季学期计算机学院《软件构造》课程的实验内容,旨在让学生深入理解软件开发中的错误处理策略、代码健壮性以及质量保证方法。
实验目标主要分为三个方面:
1. **异常与错误处理**:目的是训练学生在遇到程序运行时可能出现的问题时,如何通过异常处理机制来优雅地捕获并解决错误。这包括处理输入文本中的语法错误、标签重复、依赖关系错误等,并对客户端操作时可能出现的异常情况进行响应,如资源占用、位置冲突等。
2. **防御式编程**:要求学生运用断言和rep invariant检查来确保代码在各种条件下都能正确运行,提高代码的健壮性。防御式编程策略不仅要求预防错误的发生,还要能在错误出现时提供有用的反馈信息。
3. **测试和调试**:强调了日志记录的重要性,通过记录异常处理和应用层操作的日志,帮助开发者追踪和定位问题,提升软件的可维护性和可调试性。
实验环境配置未在描述中给出,但通常会包括操作系统、编程语言版本、开发工具等信息,这些都是进行实验所必需的软硬件环境。
实验过程详细阐述了各种错误和异常的处理方式:
- **输入错误处理**:对于不符合语法规则的输入,例如GrammarMistakesException,需要设计合适的异常处理机制来捕获并修复这些错误。标签重复(LabelSameException)和依赖关系错误(DependencyErrorException)也需要类似的方法来处理,确保输入数据的合法性。
- **客户端操作异常处理**:在用户操作可能导致资源冲突或位置冲突时,应提前检查并防止这些异常情况发生。例如,删除资源、位置或调整计划项时,需要检查是否有未结束的计划项受到影响,以及是否会产生资源或位置的独占冲突。
- **防御式编程**:通过checkRep()方法确保对象的状态始终符合其内部表示的不变量,而使用断言(Assertion)来验证函数的前置条件(pre-condition)和后置条件(post-condition),确保代码逻辑的正确性。
- **日志功能**:异常处理的日志可以帮助追踪错误源头,而应用层操作的日志则记录用户操作,便于分析用户行为和系统性能,对于调试和优化软件至关重要。
这份实验报告的目标是使学生掌握在实际开发中处理错误、编写健壮代码以及实施有效测试的技巧,为未来软件开发职业生涯打下坚实基础。通过这样的实践,学生能够更好地理解理论知识,并将它们应用到实际问题的解决中。