我在代码审查期间遇到了这个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.
}
}
}
有没有充分的理由不使用更特殊的处理方法来增强界面?