J'ai une propriété de type chaîne de caractères qui doit avoir une longueur maximale parce que les données sont liées à une base de données. Quelle exception dois-je lever si l'appelant tente de définir une chaîne dépassant cette longueur ?
Par exemple, ce code C# :
public string MyProperty
{
get
{
return _MyBackingField;
}
set
{
if (value.Length > 100)
throw new FooException("MyProperty has a maximum length of 100.");
_MyBackingField = value;
}
}
J'ai considéré ArgumentException
mais ça ne semble pas juste. Techniquement c'est une fonction - MyProperty_set(string value)
- donc un cas pour ArgumentException
peut être faite, mais elle n'est pas appelée comme une fonction aux yeux du consommateur - elle se trouve à droite d'un opérateur d'affectation.
Cette question pourrait probablement être étendue à toutes sortes de validations de données effectuées dans les paramètres de propriétés, mais je suis particulièrement intéressé par le cas ci-dessus.