本来我写用户注册的时候是
先判断用户要注册的用户在数据库里有没有这条记录
如果没有注册但昨天看了SQL数据库约束的,就想到用约束来做过程是这样的
如表:
User
ID    Name
1     Kim当用户再次注册Kim的时候就会出现"违反了UNIQUE KEY 约束"
这样就不会有重复的用户注册
但有一个总是因为我是用
try
{
   user.Insert(info) //添加用户记录
}
catch
{
   response.write("用户名已经存在");
}
上面这样可以,但是当插入记录有别的错误的时候也是报这个错误
所以我想问
try
{
   user.Insert(info) //添加用户记录
}
catch(Exception ex)
{
  if(???)  在这里能不能判断是"违反了UNIQUE KEY 约束"
  {
      然后在这里对程序中的这个"违反了UNIQUE KEY 约束"进行相应的处理  
  }
}PS:我并不是说要让我知道是什么错误,而是要让我的代码知道现在是什么错误,然后根据这个错误进行相应的处理

解决方案 »

  1.   

    Exception 只是异常类的基类,你可以找到相应特定异常。最简的方法就是在异常发生的时候,在Catch里输出这个异常的类型,然后使用这个异常就是了。比如:try
    {
       user.Insert(info) //添加用户记录
    }
    catch(Exception ex)
    {
        Console.WriteLine(ex);
    }
      

  2.   

    RE:用异常代替错误处理是一种不好的方式
    ---------------------------------------------
    也就是说
    本来我写用户注册的时候是
    先判断用户要注册的用户在数据库里有没有这条记录
    如果没有注册但昨天看了SQL数据库约束的,就想到用约束来做过程是这样的也就是用约束,当添加不了的时候说已经用户存在这种方法是不科学的
    而是还是要用上面的先查找的方法
    是不是?