2009-03-18 4 views
3

私はホットフォルダに置かれたファイルを連続して処理するプログラムを作成しています。ミッションクリティカルなプロセスを校正する際にエラーが発生する手順

このプログラムの管理者の介入なしで100%の稼働時間が必要です。言い換えれば、 "愚かな"エラーで失敗してはならない。つまり、誰かが出力ディレクトリを削除して、単にそれを再作成して移動するだけです。

私がやっていることは、プログラム全体をコーディングしてから、「エラーポイント」を探してエラーを処理するコードを追加することです。

私が避けようとしているのは、誤ったまたは不要なエラー処理を追加したり、プログラムの制御フローにエラー処理を組み込んだりすることです(つまり、エラー処理によってプログラムのフローが制御されます)。まあそれははある程度の流れを制御することができますが、それは悪い設計(主観)を構成するでしょう。

「重要な」プロセスの「エラープルーフ」にはいくつかの方法がありますか?

答えて

3

あなたのプロセスがエラー防止を可能と全く管理者の介入がない必要がある場合、あなたは可能なすべてのエラーを処理しなければなりません。プログラムを停止する可能性がある場合は、(Murphy's Law)となります。あなたは知りません。

考えられるすべてのエラーを処理していても、プロセスが常に正常に動作していることを確認するには、いくつかのロギングと(メール?)アラートを持つモニターさえ必要になると思います。

+1

合意しておいて、それが失敗し、その場合正しいことが確実に起こるとします。 – Michael

2

最も重要なことは、あなたの仮定を単体テストの形で文書化することです。各仮定に違反するテストを作成し、プログラムが正常に回復したことを証明するか、この状態を再び真にするアクションを実行する必要があります。

例を使用するには、誰かがクリティカルフォルダを削除できる場合は、これをシミュレートするテストを行い、プログラムがクラッシュすることなくこのケースを処理することを示します。

0

徹底的な分析のテクニックについては、HAZOP studyです。ここでは、プロセスの各部分について、そのプロセスのキーワードを考慮しています。プロセスプラント内の化学物質については、「より多くの」「より少ない」「不足する」「より熱い」「より寒い」「漏れ」「圧力」などであるかもしれない。

applying HAZOP to softwareの場合、ソフトウェア内のオブジェクトに適したキーワードとみなされます。

たとえば、ファイルを読み込む場合、バッファオーバーラン、欠落データの欠落、存在しない欠落、ファイルハンドルの不足などが考えられます。

関連する問題