2009-07-02 12 views
0

私はコードをテストケースでテストしています。つまり、プロパティファイルからキーの1つを削除しました。この場合、コードは不足しているリソースメッセージ(Missing Resource excptionのcatchブロックに与えられたLooger msg)を与えると仮定していますが、代わりにIO例外のcatchブロックからメッセージを出しています。メッセージは "IO Exception:java.lang .NullPointerException "。コードフローは次のようになります。 メインクラスには定数ファイルからキーを取得しようとするメソッドがあります 定数ファイルinturnはリソースバンドルを使用してプロパティファイルから値を取得します。 メインクラスの定数ファイルのインスタンスを作成しています。プロパティファイルからキーを削除すると、このインスタンスはnullになります。不足しているリソースのIO例外の取得

+4

いくつかのコードをご覧ください。 – jjnguy

+0

この質問では、明確化やソースコードを使用することができますが、閉じてはいけません。現在、4票を獲得しています... –

答えて

0

もう存在しないキーにアクセスすると、IOExceptionとしてJavaにすでに存在します。そのため、関係なくスローされます。 MissingResourceExceptionをスローしたい場合は、IOException catchブロック内でそれを行う必要があります。

また、キーがnullであるかどうかを確認し、キーである場合はMissingResourceExceptionをスローすることができます。

} catch (Exception e) { 
    throw new IOException(e); 
} 

そして、あなたはその結果を使用しようとすると、その例外は、nullポインタ例外です:キーが欠落しているとき、あなたはおそらくこのような何かを行うコードを持っているので、

1

Propertiesクラスは、nullを返します。その代わりにnullをチェックし、クラスが返すものであれば不足しているリソース例外をスローする必要があります。