Error handling 任务关键型流程的防错步骤

Error handling 任务关键型流程的防错步骤,error-handling,mission-critical,Error Handling,Mission Critical,我正在编写一个程序,它将连续处理放置在热文件夹中的文件 此程序应具有100%正常运行时间,无需管理员干预。换句话说,它不应该在“愚蠢”的错误上失败。i、 有人删除了输出目录,它只需重新创建并继续 我想做的是对整个程序进行编码,然后检查并查找“错误点”,然后添加代码来处理错误 我试图避免的是在程序的控制流中添加错误或不必要的错误处理,甚至构建错误处理(即,错误处理控制程序流)。也许它可以在一定程度上控制流量,但这将构成糟糕的设计(主观) “关键”流程的“防错”方法有哪些?如果您的流程必须防错且没有

我正在编写一个程序,它将连续处理放置在热文件夹中的文件

此程序应具有100%正常运行时间,无需管理员干预。换句话说,它不应该在“愚蠢”的错误上失败。i、 有人删除了输出目录,它只需重新创建并继续

我想做的是对整个程序进行编码,然后检查并查找“错误点”,然后添加代码来处理错误

我试图避免的是在程序的控制流中添加错误或不必要的错误处理,甚至构建错误处理(即,错误处理控制程序流)。也许它可以在一定程度上控制流量,但这将构成糟糕的设计(主观)


“关键”流程的“防错”方法有哪些?

如果您的流程必须防错且没有管理员干预,则必须处理所有可能的错误。如果你留下任何停止程序的机会,它就会发生(墨菲定律),你不会知道


即使处理所有可能的错误,我认为您也需要一些日志记录,甚至需要一个带有(邮件?)警报的监视器,以确保您的流程始终正常运行。

最重要的事情是以单元测试的形式记录您的假设。您应该编写一个违反每个假设的测试,然后证明您的程序已成功恢复或已采取措施使此状态再次成为现实


使用你的例子,如果有人可以删除关键文件夹,做一个模拟它的测试,然后显示你的程序处理这个案例而不崩溃。

< P>关于彻底分析的技术是一个过程,在这个过程的每个部分你都会考虑这个过程的关键词。对于加工厂中的化学品,这些可能是“更多”、“更少”、“缺失”、“更热”、“更冷”、“泄漏”、“压力”等等

<>何时,你会考虑适合你软件中对象的关键字。


例如,对于读取一个文件,您可能会考虑更多的是缓冲区溢出、“更少”丢失的数据、“缺失”不存在、“泄漏”、缺少文件句柄等等。p> 同意,假设它会失败,并确保在这种情况下会发生正确的事情。