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