私が取り組んでいるこれらの2つのメソッドがあります。 1つは節約し、1つは読み込みます。明らかにどちらも何らかのエラー処理を必要とするので、私はいくつかの "catch all handling"を実装しました。これで、次に実行されるのは、実行時にエラーが発生するコンテキストになります。このため、上記のレベルの呼び出し元でエラーを処理したいと思います。そうすれば、私はさまざまな状況に応じて異なるロジックを持つことができます。例外を上にスローすることができます
例があります。最初の実行で負荷をチェックしても失敗した場合、メモリがクリアされた可能性があると仮定できます。しかし、実行中にロードしようとすると、メモリが(正しい手段で)クリアされず、何かがアップしていると推測できます。
public void SaveToStorage(AccountCollection Collection)
{
try
{
var storage = IsolatedStorageSettings.ApplicationSettings;
storage["defaultCollection"] = Collection;
storage.Save();
}
catch (Exception ex)
{
// Do something meaningful here
}
}
public AccountCollection LoadFromStorage()
{
try
{
AccountCollection collection;
var storage = IsolatedStorageSettings.ApplicationSettings;
storage.TryGetValue("defaultCollection", out collection);
return collection;
}
catch (Exception ex)
{
// Do something meaningful here
}
return null;
}
基本的に私は、私は、呼び出し元までエラーを投げるが、それでも、元のエラーの詳細を保持することができます求めています。
EDIT:JohnとAndrewの両方が正解を出しました。 Andrewは元のクラスで他の一般的なクリーンアップをしたいので、緑のダニを手に入れます。
'throw 'はスタックトレースを含むすべての情報を保持します。私は ''例外をスローする例外がスローされますが、スタック情報を失うことは、(100%ではありませんが)かなり確信しています。 –
これは正しいですか?私はすべての情報を保持することをお勧めします。 – deanvmc
はい、正しいです。 'throw'を使うと、スタック情報を保持します。 'throw ex'または' throw new Exception'を実行するとその情報が失われます。 – Jan