下面的代码做的操作是 添加一个用户(根据用户的名称、用户名和密码), 如果添加成功返回 true 否则 返回false
但是里面有一个验证,就是 当用户名 长度小于 5 或者 密码长度小于 5 也会返回false,这种情况下 需要通知 用户,用户名 和密码 长度 必须大于等于5 ,
但是现在的逻辑里面写 if (username.Length < 5 || password.Length < 5) 就很不灵活,如果 AddEditor 返回false , 外部也不知道具体是什么原因返回了false ,无法提示具体的信息,
该怎么实现呢?用异常么?怎么些异常呢?
1 public class EditorService 2 { 3 4 public static bool AddEditor(string name, string username, string password) 5 { 6 if (username.Length < 5 || password.Length < 5) 7 { 8 return false; 9 } 10 11 EditorEntity ent = new EditorEntity(); 12 ent.Id = IdDao.Get("editor"); 13 ent.Name = name; 14 ent.Username = username; 15 ent.Password = password; 16 17 return EditorDao.Add(ent); 18 }
你看看你的
EditorDao.Add(ent);这个方法调用的是否正确,传的参数是否正确,可能是你这个方法中返回值有错误!
1、使用异常的话,在函数中可以考虑这么实现:
if (username.Length < 5 || password.Length < 5) { throw new Exception("密码长度必须大于5个字符"); }
2、从源头上对EditorEntity类进行限制,在EditorEntity类的Name属性的Setter方法是,判断长度,如果不符合要求,则抛出异常;
PS:这里使用的异常都是Exception,当然了,您可以自己自定义Exception类行
你可以添加验证控件去实现的