Just declare your own exception class.
public class DuplicateNameException : Exception {}
You'll probably want to add some constructors to ensure that the message gets set appropriately, but it doesn't need to be much more difficult than that.
Updated after clarification from OP: So the DB throwing an exception and you just want to make it more obvious what the problem was. What I suggest in this case is that you keep the DB exception as the InnerException, and rethrow something better. So declare DuplicateNameException as something like this:
public class DuplicateNameException : Exception
{
public DuplicateNameException(DBException ex)
: base("Duplicate name!", ex)
{}
}
Then where you need to do DB operations:
try
{
DoDatabaseOperation();
}
catch (DBException ex)
{
if (IsDuplicateNameException(ex))
{
throw new DuplicateNameException(ex);
}
else
{
throw; // use the no-argument form of "throw" to ensure you don't break the stack trace!
}
}