使用Factory / delegate模式处理异常是否合适?

时间:2015-04-27 09:31:35

标签: c# exception design-patterns

我正在开发一个处理与各种imap服务器(邮件提供商)连接的库(如Gmail,Outlook,Yahoo,Orange ......)。

进入主题时,一个方法使用刷新令牌(OAuth2)请求访问令牌,此方法可能由于多种原因而抛出异常,(访问已撤销,invalidParameter,badRequest,invalidCredentials,dailyLimitExceeded或无连接... { {3}})。

例如,如果我获得了撤销访问异常,我应该处理它,所以下次用户连接时,我们会征求他的同意。
如果我收到太多的请求异常,那么我通过后退来处理它......

问题:使用Factory / delegate(C#)模式处理不同类型的异常是否合适?或者我应该以不同的方式处理它?<​​/ strong>

谢谢你,对不起我的英语。

1 个答案:

答案 0 :(得分:0)

首先遵循开放/封闭原则,你应该编写一个带有“void HandleError(Exception exception)”方法或类似方法的基类或接口。然后,为每个要处理的错误派生一个类。如果您使用任何IoC / DI容器,它可以为您创建所有可能的处理程序。否则,您的初始化必须创建所有实例。

如果你寻找模式,我可以想象访客或责任链可能是候选人,这取决于你没有给我们的细节。