Meilleures pratiques de validation des paramètres

Imaginez que vous avez une application qui est une sorte de avant la fin de l' à tous de votre logique métier. Cette face avant a beaucoup de Dll dont il dépend, et les méthodes de ces Dll peuvent s'appeler les uns les autres à plusieurs reprises sur une seule exécution d'une méthode donnée dans le front-end. Si les utilisateurs de votre application n'avez pas directement accès à ces Dll, si vous...

1) le Risque d'une (petite) de performances et de valider les paramètres de chacune de ces méthodes, même si vous pouvez en validant les mêmes paramètres à 5 fois; ou

2) le Risque de comportements inattendus et supposons que, comme vous validez les paramètres d'entrée, tous les autres paramètres passés vers et à partir de votre code interne sont valides (par exemple, ni nulle ni vide)?

Edit: Juste pour donner un exemple, supposons que vous avez une Regex RegexA et une méthode

internal bool Matches(string expression)
{
    return RegexA.IsMatch(expression);
}

IsMatch lèvera une exception sur un paramètre null, mais pas sur la chaîne vide. Si vous savez à l'avance qu'une chaîne vide ne sera jamais un match pour que la Regex, devriez-vous utiliser if (String.IsNullOrEmpty(expression)) avant, même en sachant qu'il peut être validé pour une nullité à l'intérieur de la IsMatch cadre de la méthode? Dans ce cas, vous êtes clairement en répétant une validation, mais est-il mieux de le répéter ou à risque?

source d'informationauteur User | 2011-06-28