我有一个会员例外,如下所示:
public enum MembershipError
{
EmailNotFound,
EmailNotConfirmed,
IncorrectPassword,
EmailExists
}
public class MembershipException : ApplicationException
{
public MembershipError MembershipError { get; set; }
public MembershipException(MembershipError membershipError)
: base(Enum.GetName(typeof (MembershipError), membershipError))
{
MembershipError = membershipError;
}
}
我应该在例外中使用枚举还是为每个枚举创建例外?因为那样我会在捕获异常时放置逻辑,如下所示:
try
{
}
catch (MembershipException exception)
{
switch (exception.MembershipError)
{
case MembershipError.EmailExists:
break;
//etc.
}
}
我的服务层抛出这些异常,Web 层/操作中捕获这些异常,生成正确的 json 并将其返回到视图。
请提出替代方案?
例外只能用于特殊情况。您的枚举中列出的错误似乎相当标准,我选择不通过异常来表达它们。相反我更喜欢TryXXX
风格 API 优先于异常。
例如
public bool TryGetMembershipData(
string user,
out Data data,
out MemberShipError error) {
...
}
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)