我有以下注册操作方法: -
[AcceptVerbs(HttpVerbs.Post)]
public PartialViewResult Register(string id, int classid) {
try
{
User user = r.FindUser(id);
Users_Classes uc = new Users_Classes();
uc.AddedDate = DateTime.Now;
uc.ClassID = classid;
user.Users_Classes.Add(uc);
repository.Save();
ViewBag.classid = classid;
return PartialView("_usersearch2", uc);
}
catch (System.Data.UpdateException ex)
{
return PartialView("_error");} }
在存储库类中调用以下Save方法: -
public void Save() {
entities1.SaveChanges();
}
我在上面的代码中面临以下两个问题: -
如果两个系统用户在同一个类中注册了同一个用户,则DbUpdateException
上将repository.Save();
引发以下异常catch (System.Data.UpdateException ex)
,PartialView("_error");}
将无法处理。那么我如何强制将异常传递给我的动作方法呢?
如果发生异常,我如何返回一个警告框(表示用户可能已经添加到此类),而不是返回{{1}}?
BR
答案 0 :(得分:1)
1)据我所知,DbUpdateException不是UpdateException的子类,所以如果你想捕获DbUpdateException,你应该特别注意到它。或者,您可以捕获DataException,它是UpdateException和DbUpdateException的基类