3

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

该程序应该有 100% 的正常运行时间,无需管理员干预。换句话说,它不应该因“愚蠢”错误而失败。即有人删除了它应该简单地重新创建它并继续前进的输出目录。

我正在考虑做的是对整个程序进行编码,然后通过查找“错误点”,然后添加代码来处理错误。

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

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

4

4 回答 4

3

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

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

于 2009-03-18T22:53:22.760 回答
2

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

使用您的示例,如果有人可以删除关键文件夹,请进行模拟此的测试,然后显示您的程序可以处理这种情况而不会崩溃。

于 2009-03-18T23:02:15.203 回答
1

单元测试。

于 2009-03-18T22:51:58.830 回答
0

进行彻底分析的技术是HAZOP 研究,其中对于过程的每个部分,您都考虑该过程的关键字。对于加工厂中的化学品,这些可能是“更多”、“更少”、“缺失”、“更热”、“更冷”、“泄漏”、“压力”等等。

HAZOP 应用于软件时,您会考虑适合软件中对象的关键字。

例如,对于读取文件,您可能会认为“更多”是缓冲区溢出、“更少”丢失数据、“丢失”不存在、“泄漏”缺少文件句柄等等。

于 2009-03-18T23:13:53.473 回答