不要将处理“通常情况”的代码和处理异常的代码混杂在一起。尽量只编写处理通常情况的代码。如果通常情况的处理代码失效,进程应该报告错误,并尽可能快地崩溃。不要试图修复错误以继续运行进程。错误应该在另外一个进程中进行处理(参看 5.5 节内容)
将错误恢复代码和通常情况处理代码予以清晰的隔离,可以极大简化系统设计。
软硬件出错时生成的错误日志将用于后续阶段对错误的诊断和纠正。应该永久地保留该进程中的有益信息。
系统设计的一个基本要素是确定系统中必须正确与不必正确的部分。
在传统的操作系统设计中,系统内核被假设为(而且被认为必须)是正确的,然而,用户应用程序没有必要都完全正确。如果用户应用程序失败,那么应该只会涉及到相应应用,不应该影响到系统的总体完整性。
在系统设计的第一阶段中,必须要搞清楚必须正确的部分。这一部分被称之为错误内核(error kernel)。通常,错误内核都有一些实时的内存驻留数据库,用来保存硬件状态。