【发布时间】:2011-01-24 17:56:33
【问题描述】:
我有一个成员资格异常,如下所示:
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 并将其返回给视图。 请推荐一个替代方案?
【问题讨论】: