私のプロジェクトの要件は、特定のディレクトリ内のファイルを解析するスロー。 MyDirectory、MyFiles、MyRecords、MyFieldsのようなクラスを作成しました。これは基本的に私のデータのメモリ内表現です。私は例外処理の助けが必要です。例外をログに記録し、画面にエラーを表示したいMyFieldsクラスレベルで例外が発生した場合は、CustomErrorStringにフィールド名を追加したい場合は、MyRecordsクラスに例外をスローします。その例外をMyRecordsクラスでcatchして、レコード番号をCustomErrorStringに追加し、MyFilesクラスに同じ例外をスローします。 MyFilesクラスの例外をキャッチしてCustomErrorStringなどにファイル名を追加してください...あなたはどのようにカスタム例外処理クラスを作成するか、さまざまなクラスでそれを処理し、また一般的なsystem.Exceptionを処理する方法を教えていただけますか?カスタム例外をスローして情報を収集し、再び
0
A
答えて
0
カスタム例外を作成できます。例えば、このような単純なもの:
public class MyException : Exception
{
public string SomeProperty { get; set; }
public MyException(string message, string someProperty, Exception innerException)
: base(message, innerException)
{
SomeProperty = someProperty;
}
}
任意の例外をキャッチすると、あなたは内部例外として、元の設定後、ラップカスタム1でその例外は、次のことができます。
catch (Exception ex)
{
throw new MyException("Custom error message", "Custom info", ex);
}
ますもちろんcatch
ブロックで好きなことをすることもできます。ログ情報など。そして、あなたはカスタム例外とそのコンストラクタを設計することができます。
ここで重要な点は、元の例外を変更しないで、新しい例外のプロパティとして保持することです。例外に情報を追加したいスタック内の各レイヤーは、それ自身の例外をラップすることによってそれを行う必要があります。このレイヤーは、好きなカスタムプロパティを持つことができます。
関連する問題
- 1. 訪問者情報収集
- 2. simple_one_for_one workersについての情報を収集します。
- 3. カスタム例外をスローする
- 4. LIKEボタン、正しい情報を収集しない
- 5. スタックトレースと内部例外情報を保持している間に例外をスローする
- 6. フレックス:SSL証明書情報収集
- 7. の収集特定の情報[SQLiteの]
- 8. 対策:ソフトウェアクラッシュ時の情報収集
- 9. Bashスクリプティング、コレクションの情報収集
- 10. Java再スロー例外
- 11. Java - 例外をスローして例外をキャッチして再スローすることの違い
- 12. マーカーを使ってpy.testテスト情報を収集する
- 13. DevPartner: ".NETから収集する"。 VS "COM情報を収集する"
- 14. カスタム例外に特別な情報を追加する
- 15. Python - ファイル情報を収集すると再帰的にメモリエラーが発生する
- 16. Guava CacheLoaderがカスタム例外をスロー&キャッチ
- 17. スプリングフィルタがカスタム例外をスローする
- 18. カスタムNewCommandEvent例外をスローする
- 19. 例外のスローまたは再スロー?
- 20. ブールを返して例外を再スローする
- 21. Djangoの管理ページで追加情報を収集していますか?
- 22. うるうモーションハンド情報を収集してiPhoneに送信するには?
- 23. フォームを作成し、配布し、情報を収集するためのオプション
- 24. ノーバインディング操作情報例外
- 25. 例外をラップして機密情報を隠す
- 26. jquery loadとphpを使用して外部のWebサイトから情報を収集する
- 27. Travis CIのビルドが "テストテーブルの情報を収集中..."でタイムアウトしました。
- 28. イスタンブール:カバレッジ情報が収集されず、カバレッジ情報なしで終了します。
- 29. InvocationTargetExceptionターゲット例外を再スローする
- 30. C++再帰アルゴリズムに例外をスロー
Davidさんありがとうございます。あなたはあなたの最後の段落を精緻化できますか?元の例外の価値をどのように保持できますか? MyExceptionクラスのpublic static StringBuilder MyCustomError varibleのようなものを作成し、呼び出された関数をキャッチするときに文字列を追加する必要がありますか? – bansi
@bansi:元の例外を '.InnerException'プロパティ(これは' base() 'コンストラクタがこの例で使用したものです)に設定すると、元の例外が保持されます。たとえば、スタックで3回実行すると、合計で4つの例外が発生します。それぞれの例外は別の例外のプロパティです。 – David