
针对错误处理及错误转换,重点在于微分几何彭家贵前五章的完整解答。
5星
- 浏览量: 0
- 大小:None
- 文件类型:None
简介:
7.2 错误处理策略 制定合理的错误处理策略。这里所指的“错误”指的是程序运行时遇到的异常情况,并非模块内部的编程或设计缺陷,后者应通过断言标记来识别。在系统设计阶段,应明确错误处理策略,涵盖鉴别、严重程度评估、错误检查、错误处理、错误传递以及详细的错误报告方案。 错误鉴别涉及记录每个实体(包括函数、类和模块)内部和外部的不变式、前置条件和后置条件,以及它所提供的错误安全性保证。 进一步地,需要确定每个错误的严重级别。 错误检查则需记录哪些代码负责检测该错误的存在。 此外,对于每一个发生错误的场景,应当明确负责处理该错误的具体代码段。最后,需要选择合适的报告方法来通知相关人员或系统。 错误传递则需要确定每个模块如何利用编程机制来传递错误信息,例如C++异常或CORBA异常机制以及返回值方式。 重要的是,错误处理策略仅应在模块边界进行调整;如果模块内外采用的策略存在差异,则所有模块入口函数必须直接负责执行内到外的一系列策略转换。例如,在一个内部使用C++异常而又提供C语言API边界的模块中,所有C语言API必须使用`catch()`语句捕获所有异常并将其转换为相应的错误代码。
7.3 在离错误最近的地方进行错误处理或转换说明:当一个函数检测到自身无法解决的潜在问题,并且导致函数无法继续正常执行时,应当立即报告该问题。如果缺乏足够的上下文环境来进行处理时,应该将责任向上层传递。 原则7.6 则规定:在发生任何错误的时刻,至少要确保满足基本的保证条件;对于事务处理而言,至少要保证强保证;对于原子操作而言则必须实现无错误的保证状态。这里的“基本保证”指的是访问对象时的状态始终是正确的;“强保证”是对基本保证的进一步强化,不仅要求状态正确,还需要在失败时能够将状态回滚到操作前的状态,或者确保操作成功且不产生任何副作用;而“无错误的保证”则意味着完全不允许出现任何类型的失败情况。“编码过程中严格遵循此原则”能够显著提升程序的健壮性和可靠性. 以下是一个符合基本保证原则的代码示例:该代码片段负责解析输入流并将其转换为对象格式;如果输入流抛出异常,则会报告相应的错误.
全部评论 (0)


