我正在编写一个程序,它将持续处理放入热文件夹中的文件。
此程序应具有100%的正常运行时间,无需管理员干预。换句话说,它不应该因“愚蠢”错误而失败。即某人删除输出目录,只需重新创建并继续。
我正在考虑的是编写整个程序,然后查找“错误点”,然后添加代码来处理错误。
我试图避免的是在程序的控制流程中添加错误或不必要的错误处理甚至构建错误处理(即错误处理控制程序的流程)。也许可以控制流量到一定程度,但这会构成糟糕的设计(主观)。
“错误验证”“关键”流程有哪些方法?
答案 0 :(得分:3)
如果您的流程必须是防错的并且没有管理员干预,那么您必须处理所有可能的错误。如果你有机会停止该程序, 会发生(墨菲定律)并且你不会知道。
即使处理所有可能的错误,我认为您还需要一些日志记录,甚至是带有(邮件?)警报的监视器,以确保您的进程始终正常运行。
答案 1 :(得分:2)
最重要的是以单元测试的形式记录您的假设。您应该编写一个违反每个假设的测试,然后证明您的程序成功恢复或采取措施再次使这个状态成真。
要使用您的示例,如果有人可以删除关键文件夹,请进行模拟此操作的测试,然后显示您的程序处理此案例而不会崩溃。
答案 2 :(得分:1)
答案 3 :(得分:0)
彻底分析的技术是HAZOP study,对于流程的每个部分,您都要考虑该流程的关键字。对于加工厂中的化学品,这些可能是“更少”,“缺少”,“更热”,“更冷”,“泄漏”压力等等。
当applying HAZOP to software时,您会考虑适合您软件中对象的关键字。
例如,对于读取文件,您可能会认为“更多”是缓冲区溢出,“更少”缺少数据,“缺少”不存在,“泄漏”缺少文件句柄等等。