Quel exception à générer à partir d'une propriété setter?

J'ai une chaîne de propriété qui a une longueur maximale exigence parce que les données sont liées à une base de données. Quel exception dois-je lancer 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 il ne semble pas approprié. Techniquement, c'est une fonction - MyProperty_set(string value) - si un cas de ArgumentException peuvent être faites, mais il n'est pas d'être appelé comme une fonction aux yeux des consommateurs - c'est sur le côté droit de l'opérateur d'affectation.

Cette question pourrait également être étendu pour inclure tous les types de données de validation dans les accesseurs de propriété, mais je suis particulièrement intéressé dans le cas ci-dessus.

InformationsquelleAutor lc. | 2009-03-11