J'aime utiliser: ArgumentException, ArgumentNullException, ArgumentOutOfRangeException
Modifier
Vous pouvez également jeter comme Yoooder souligne le soufflet (vote sa réponse jusqu'), ce qui InvalidOperationException de sens que si votre donné un argument valable, mais l'appel d'une méthode n'est pas valable pour l'argument basé sur l'état actuel.
Vous pourriez aussi jeter le NotSupportedException si les arguments passés en sont tout simplement pas pris en charge. Imaginez un client Ftp, et que vous passez une commande que le client ne prend pas en charge. Ce serait une utilisation valide.
Le truc, c'est de lancer l'exception qui exprime le mieux le pourquoi de la méthode ne peut pas être appelé dans l'état actuel.
Modifier
Merci pour le lien que j'ai mis à jour tout au point de msdn.
Modifier
En réponse à votre suivi, je voudrais jeter un ArgumentOutOfRangeException, regardez ce que MSDN dit à propos de cette exception:
ArgumentOutOfRangeException est levée
lorsqu'une méthode est appelée, et au moins
l'un des arguments passés à la
la méthode n'est pas nullNothingnullptra null
référence (Nothing en Visual Basic)
et ne contient pas une valeur valide.
Dans ce cas, vous êtes de passage à une valeur, mais qui n'est pas une valeur valide, depuis votre portée est de 1 à 12. Cependant, la manière de documenter clairement ce que votre API lancers. Parce que bien que je pourrais dire ArgumentOutOfRangeException un autre développeur peut dire ArgumentException. Il est facile et documenter le comportement.
Modifier
Comme Yoooder souligne à nouveau dans les commentaires de documentation est bonne, mais à un point. Idéalement, l'exception doit être détaillée au sujet de ce qui s'est passé, pourquoi c'est mal, et comment le résoudre. J'aime quand les messages d'erreur de point à l'aide de la documentation ou d'autres ressources.
Par exemple, Microsoft a fait une bonne première étape avec cette. Lorsque vous rencontrez l'erreur, ils vous disent dans l'erreur messgae l'article base de connaissances. Ce qu'ils ne font pas bien, c'est raconter pourquoi vous plus particulièrement, elle a échoué.