2012-04-18 12 views
0

あなたが気づいたことがあるように、今日あなたが手に入れているさまざまなプログラムのエラーは、常にエラーID番号を持っています。ディクショナリを使用してエラーを効率的に処理していますか?

Dictionary<int,string>を持つことをお勧めします。intはエラーIDで、文字列は何が起こったのかの説明です。例えば

ErrorID: 404 
Description: Page not found 

は、私は欠点を見つけたので、これを求めて、それは大したことは(多分私はどのように行うのか分からない)であるかどうかわかりませんよ。 プログラマーとして、一度例外をキャッチすれば、それをエラーIDとどのくらい正確に関連づけますか? (あなたは最終的に彼の操作がうまくいかない理由のために最終的にユーザにDescriptionを与えることができます)。

ありがとうございます。

+1

HTTPエラーにはステータスコードがあります。他のほとんどのエラーには数字がありません。 – SLaks

+0

@SLaks私は私が見るエラーの90%でそれらを実行するので、私は本当に同意することはできません。インストーラの操作がうまくいかないとき、ネットワーキングの問題かそれが何であれ。しかし、私はそれが効率的かどうかを知りたいので、人気は少し話題になっています。 – MasterMastic

+1

httpプロトコルが記述されたとき、実行可能なソリューションはエラーコードだけでした。あなたがそれらをマッピングしている場合、エラーコードだけを理解できるものとやり取りしているのでなければ、辞書に間違いはありません。彼らはメンテナンスの悪夢です。 –

答えて

2

古い古いエラーコードのパターンを転置しようとしています。これは、例外の少ない言語(例:C)やブラックボックス/リモートプロセス(HTTP要求)を扱う場合に適しています。

throw new Exception("File not found"); 

、あるいは作成し、独自の例外:.NETで

は、エラーメッセージが含まれる例外を使用することができます

class FileNotFoundException : Exception 
{ 
    public FileNotFoundException() : base("File not found") {} 
} 

使用法:

throw new FileNotFoundException(); 
ので

、答え:頻繁に起こらないエラーのエラーコードを処理するのが良いパターンかもしれません。 .NET辞書は高速ですが、オーバーヘッドがあります。しかし、あなたの質問はi18nのものから遠く離れているわけではありません。

実際の質問は次のとおりです。エラーコードまたは例外を優先しますか?

+1

皆さんが皆さんにお伝えしているように、彼らが完全にお互いを置き換えていることはわかりませんでした。これは私にとって大きな情報でした。あなたがた両方に感謝します。 – MasterMastic

関連する問題