Hey :)
を処理する方法はありますか?例外は全世界で例外ですか?私は、 "AppDomain.CurrentDomain.UnhandledException"と "Application.ThreadException"で未処理の例外をキャッチできることを知っていますが、既にキャッチした例外(ログなどの書き込みなど)にいくつかの処理を追加したいと考えています。処理された例外をキャッチする
答えて
あなたは同じ例外を再スローし、モジュール/ロギングモジュールを呼び出すことでそれをキャッチし、それを記録することができます。たとえば :
private void DivideByZero()
{
try
{
int x = 2/0;
}
cath(Exception ex)
{
Console.Writeline(ex.ToString());
throw;
}
}
void Main(string[] a)
{
try
{
DivideByZero();
}
catch(Exception x)
{
// write logging code here ..
}
}
一般的には、おそらくあなたのコード内で可能な限り低いレベルでの例外をキャッチしたいです。例外がどこで発生したかに関連してそれらが近づくほど、それらの原因となった問題を修正する必要があります。あなたはは、例外の原因となった問題を固定する希望を持って、このレベルでの是正措置を取ることができない場合は
、あなたはすべてでそれを扱うべきではありません。例外をバブルアップさせ、必要に応じてグローバルに処理します。あなたが持ってきた場合
が言われていること、は下位レベルの例外扱い、あなたがより高いレベルでそれをキャッチすることができるようになるだろう唯一の方法はされている場合Catch
ブロックからrethrow itより低いレベルで。
ですから、例えば:もちろん
try
{
//your code
}
catch (SomeException e)
{
//take any relevant handling measures
//rethrow the exception
throw;
}
、これは技術的に低いレベルでのこのtry/catchブロックで例外が未処理であることを意味するが、それはあなたが何かを持っているつもりだ唯一の方法ですより高いレベルで捉える。
再スロー例外の詳細については、以下を参照してください。
はありません、グローバルな例外イベントがありません。それは非常に危険です。あなたは、公共の使用のためのものではない他のモジュールからあらゆる種類の内部例外をキャッチします。また、潜在的にあなたのログを例外で溺れさせるでしょう。
あなたは同じ効果を達成するために、あなたの例外処理について、より構造化する必要があります。例外の実際の処理をカプセル化し、実際のキャッチブロックで最小限の作業を行います。いずれかの "HandleException"メソッドをどこかにもあなたがすべての例外を渡すことによって。エンタープライズライブラリのException Handling blockもご覧ください。再スローため
私は、エンタープライズライブラリの例外処理ブロックが、各「キャッチ」ブロックで呼び出される何らかの種類のデリゲートを提供できることを理解しました。あれは正しいですか? –
- 1. 外部アセンブリで処理される例外をキャッチ
- 2. 未処理の例外をキャッチする
- 3. スレッドの未処理の例外のキャッチ
- 4. 例外処理の試行とキャッチ
- 5. Qt例外処理 - キャッチしよう
- 6. Sparkでキャッチされない例外処理
- 7. 例外がキャッチされない理由
- 8. Java例外処理:外部依存モジュールによってスローされた例外をキャッチ
- 9. 例外が処理されなかった - 再スロー例外
- 10. Cで未処理の例外をキャッチする方法は?
- 11. 内部JSF例外をキャッチして自分で処理する
- 12. iOS +未処理の例外をキャッチする方法
- 13. 処理されない例外と停止方法をキャッチしますか?
- 14. キャッチされた例外をキャッチする方法
- 15. 例外処理戦略 - リポジトリから例外をキャッチしてWebApiコントローラに渡す
- 16. 例外をキャッチしてJavaで処理を続ける方法
- 17. 内部キャッチでキャッチされた例外をネストされたtryキャッチの外部キャッチに渡す方法
- 18. 例外を処理する方法 "リファクタリング 'リソースの削除'" thorughプログラムの処理中に例外がキャッチされました
- 19. フォークされたプロセスで例外を処理する
- 20. 処理された例外でトーストを防止するACRA
- 21. ローカライズされた例外を処理する方法は?
- 22. フィルタでスローされた例外を処理する方法は?
- 23. すべてのjavascript未処理の例外をキャッチ
- 24. すべての未処理の例外をキャッチ
- 25. 例外を処理する
- 26. 例外をキャッチする理由
- 27. バックグラウンドワーカーで処理されない例外
- 28. 処理されない例外
- 29. Log.wtf対処理されない例外
- 30. Androidで処理されない例外
+1。 –
Rethrowingは例外*が処理されなかったことを意味します。 –
@Brianは、彼は私が彼にそれを行うための1つの可能な方法を示したように、「取り扱い」の例外をキャッチする方法を知りたいです。他の方法もあります。 – Shekhar