2011-01-04 9 views
1

例外メッセージが格納されている場所が1つあります(これらはユーザーが向いていません)。 私はまたいくつかの例外を持っていて、異なるエラーメッセージとコードを持つことができます。これらのコードは、文書化とコミュニケーションの目的にのみ使用しています。例外的なメッセージをグローバルな場所に保存する

  1. のResourceBundleすべての例外メッセージ
  2. グローバル列挙のために:しかし、一箇所にすべてのエラーメッセージを持つことは、私はこれらを検討しています

    運用人々のための提案の修正がエラーを参照して提供することは非常に貴重です各列挙型にはメッセージとコードが含まれており、それぞれ例外クラス内には例外が持つことができるメッセージとコードが含まれています。

どのオプションが最適ですか?

答えて

1

リソースバンドルと列挙型は、問題の同じ部分を解決していません。ローカリゼーションのためのテキストの外部化(リソースバンドルなど)とメッセージの種類を識別する何らかの方法が必要です。あなたのシステムが拡張可能でない場合(すべての例外タイプを管理している場合)、列挙型はメッセージタイプを追跡するための適切な方法です。列挙型は、新しいコードを追加する方法がないため、他の人がシステムを拡張できれば良い型にはなりません。私は例外タイプに文字列を使うことを推奨します。これは、必要に応じて名前空間の分割に簡単に役立ちます。

+0

私はそれらが異なるものを意図していることに同意します。ローカライズする必要はありません。私のシステムは、他の外部の当事者によって拡張されることを意図していません。それは図書館などではない。そのWebアプリケーションです。私はあなたの最後の文を理解していませんでした。 – treefrog

+1

拡張性の必要がない場合、型としてenumを使用するのは、非常にシンプルでタイプセーフな方法です。最後の文は、拡張性シナリオにおける例外タイプの衝突を回避するための問題に関連しています。エラーコードはjavaパッケージ名に似た文字列にすることができます。 –

+0

ああとにかく私は単一のファイル(列挙型のために)を使用する場合、私はとにかくエラーを分割する必要があるので、私はとにかく何かをする必要があります。助言がありますか ?私は、可読性/保守性のために、何らかのエラーに対する例外の関連付けを維持する必要があります。任意のアイデアにする方法?私は3番目のオプションを追加しました。 – treefrog

1

私はこれらのいずれかを行うことはできません。オペレータに何かを読ませたい場合は、Javadocまたはdocletの形式を使用して、システム内のすべての例外メッセージを含むドキュメントを作成します。 Doxygenを使用することもできます。

1つの例外メッセージ/コードごとに1つのファイルを作成すると、すべてのコードをまとめて1つのファイルでモノリシックプログラムを作成できます。 SQL例外や、SQL Exceptionsにアクセスできないユーザーインターフェイス例外を含める必要がないシステムの部分が存在します。

+0

私は "プログラム"は耳であり、エラーメッセージは私たちのコードで作成されたものにすぎません。 sqlexceptionsなどではありません。私はオプション2に傾いています...、3番めのオプションはどうですか?エラーメッセージのコードとパターン文字列とともに、すべての例外クラスの中でenumを持つことができます。多分私はシステム全体のエラーメッセージテーブルを生成するためにあなたの提案を使用することができます。どうしようもない – treefrog

関連する問題