si l'instruction pour lancer Exception?
Salut, je voulais vous demander, parce que je ne suis pas sûr si c'est propriete à l'aide d'Exception:
public int Method(int a, int b) {
if(a<b) throw new ArgumentException("the first argument cannot be less than the second");
//do stuff...
}
puis-je jeter l'Exception après, si l'énoncé? ou dois-je toujours utiliser try - catch quand il s'en va avec les exceptions?
Vous devez vous connecter pour publier un commentaire.
Qui est parfaitement valide. C'est exactement ce que les exceptions sont utilisées pour vérifier les "Exceptions" dans votre logique, des choses qui n'étaient pas censés être.
L'idée derrière l'interception d'une exception, c'est que lorsque vous transmettez des données quelque part et le processus, vous ne pouvez pas toujours savoir si le résultat sera valide, c'est quand vous voulez attraper.
Concernant votre méthode, vous ne voulez pas attraper à l'intérieur de
Method
mais enfaite quand vous l'appelez, voici un exemple:Dans le cas ci-dessus, a est inférieur à b, de sorte que vous pouvez à l'exception d'obtenir une exception ici, et vous pouvez le gérer en conséquence.
Dans ce cas, vous ne voulez pas attraper l'exception. Vous êtes à la jeter à l'alerte de l'appelant qu'ils ont fait une erreur dans la façon dont ils ont appelé votre méthode. L'attraper vous-même permettrait d'éviter que cela se produise. Donc oui, ton code semble correct.
C'est parfaitement bien. Vous êtes jeter l'exception, pas de capture/de manutention, de sorte que vous ne pas besoin d'un
try/catch
bloc pour elle.Ce qui est parfaitement valide, vous pouvez utiliser la même construction, même avec la constructeurs.
Mais Ce que vous ne doit pas faire est
Vous avez eu la bonne idée. Vous pouvez utiliser votre code comme ceci:
Il pourrait aider à regarder à travers MSDN est de la Manipulation et de lever des Exceptions et Les meilleures Pratiques pour la gestion des Exceptions
Ce que vous avez fait ici est parfaitement Ok.
Un modèle commun pour les arg contrôles consiste à envelopper le check/jet de code statique le "Contrat" de la classe de garantir une approche cohérente de la gestion des exceptions lors de la validation des arguments d'entrée.
Légèrement hors sujet, mais si vous l'utilisez .NET 4.0, vous pouvez aussi regarder les nouveaux Les Contrats De Code fonctionnalité de validation de la méthode d'entrée et de sortie.