我々はこのようになりますリポジトリのコードを持っている:例外ロギングは
public class PieRepository
{
public void AddCherryPie(string incredientA)
{
try{
...
}
catch(Exception ex){
log("Error in AddCherryPie(" + incredientA + ")");
throw new Exception("Error in AddCherryPie(" + incredientA + ")", ex);
}
}
public void AddApplePie(string incredientA, string incredientB)
{
try{
...
}
catch(Exception ex){
log("Error in AddApplePie(" + incredientA + "," + incerdientB + ")");
throw new Exception("Error in AddApplePie(" + incredientA + "," + incredientB ")", ex);
}
}
}
だから、これtry -> catch -> log -> throw new
リポジトリ方法や、プロジェクト内の他の重要な方法のほとんどに存在しています。
今日、このようなタイプのエラー処理をユーザーが見たことがないので、私たちはこれについて議論しましたが、主な議論は、何が起こったのかを正確に知る必要があり、私たちにまさにこのことを教えてください... これは大丈夫ですか?
編集:エラーをスローするときに元の例外メッセージが追加されました。
コードは例外をキャッチしてから使用しません。代わりに、有用なデバッグ情報を含まない新しい例外をスローします。 StackTraceなどがなければ、起こったことを正確に知ることができないため、「われわれは何が起こったのか正確に知る必要がある」という議論は意味をなさない。少なくとも例外をどこかに記録してから、ユーザに有用なメッセージを提示する必要があります。 – Equalsk
ログの面では、NLogや他のサードパーティのソリューションを試すことができます(NLogにはとても満足しています) – Tuco