コード レビュー中にこの C# コードを見つけました。どういうわけか、同じ引数(キャッチ内)で2回コールバックするのは奇妙に思えます。
public interface IMyExceptionHandler
{
void Handle_1(Exception ex);
void Handle_2(Exception ex);
}
public class SpecialException : Exception {}
public class MyBusinessLogic
{
private readonly IMyExceptionHandler _handler;
public MyBusinessLogic(IMyExceptionHandler handler)
{
_handler = handler;
}
public void DoMagic()
{
try
{
// ommitted.
}
catch (SpecialException ex)
{
_handler.Handle_1(ex);
_handler.Handle_2(ex);
// 3rd way to handle ex somehow.
}
}
}
より特別な処理方法でインターフェイスを強化しない正当な理由はありますか?