私のテクニカルリードは、この例外メカニズムを主張しています。
try
{
DoSth();
}
catch (OurException)
{
throw;
}
catch (Exception ex)
{
Util.Log(ex.Message, "1242"); // 1242 is unique to this catch block
throw new OurException(ex);
}
1242は、OurException以外の例外を処理するcatchメソッドの識別子です。プロジェクト内のすべてのcatchブロックには一意の識別子が必要です。これにより、ログを確認することで例外が発生した場所を知ることができます。
すべてのメソッドについて、OurExceptionをキャッチしてスローする必要があります。他のタイプの例外がスローされた場合は、ログに記録し、OurExceptionでマスクしてから再スローする必要があります。
これは合理的なアプローチですか?もしあれば、より良い選択肢は何ですか?
編集:スタックトレースはリリースモードでは意味のある結果を生成しないと言われました。一般的な例外をキャッチしてスローすることは問題ないことを提案していますか?
Edit2:ありがとうございます。私はこれに対する私の議論の一部としてあなたの答えを使用しましたが、あなたは十分な経験がなく、実際の状況に対処する方法を知らないと言われました。私はこのように行かなければなりません。