J'ai programmé une sous-procédure qui sera appelée dans la procédure principale (appelée par l'événement mainForm), pour valider les entrées avant le calcul principal. Maintenant, je cherche un moyen d'annuler le calcul et de recentrer le mainForm si certaines entrées sont incompatibles. Je pense qu'il est inutile d'utiliser l'instruction Try-Catch
pour intercepter l'erreur de calcul, car je connais sa source et il doit être évité pour les performances du code. Est-ce que quelqu'un a une solution?Annuler le calcul si l'entrée-discordance a été trouvée
0
A
Répondre
1
Si vous voulez laisser un sous-programme plus tôt, il vous suffit de dire Return
.
Modifier.
Il semble que vous appeliez une méthode qui appelle une autre méthode. Demandez à la seconde méthode de renvoyer un booléen indiquant si l'entrée est valide. Quelque chose comme ceci:
Public Sub CheckMainForm()
'First validate the input
If Not IsInputValid() Then Return
'Next do the rest of your work
End Sub
Public Function IsInputValid() As Boolean
'Do input validation, if at anypoint something is wrong return false
If Not IsNumeric(txtAge.Text) Then Return False
If Not IsValidEmail(txtEmail.Text) Then Return False
Return True
End Function
Questions connexes
- 1. Comment annuler scrollTo s'il a été déclenché?
- 2. Dectect si le fichier a été téléchargé
- 3. mod_rewrite: correspond uniquement si aucune règle précédente n'a été trouvée?
- 4. Comment puis-je "annuler" une classe qui a été déclarée
- 5. Déterminez si une connexion a été rompue
- 6. Détecter si la connexion a été établie
- 7. JSTL: Vérifier si Envoyer a été cliqué
- 8. Test si JavaScript a été modifié
- 9. Test si ICommand a été exécuté
- 10. Test si un objet a été désalloué
- 11. comment détecter si tfilestream a été libéré?
- 12. Comment vérifier si session_start a été entré?
- 13. Javascript - vérifier si le prototype de méthode a été changé?
- 14. .Formulaires WinDind si le bouton Quitter a été enfoncé
- 15. fichier batch Windows - vérifier si le fichier a été modifié
- 16. Wicket: Prévenez si le modèle de page a été modifiée
- 17. Comment vérifier si le WaitHandle a été défini?
- 18. détectera si le bouton ctrl a été pressé
- 19. Vérifier si le fichier javascript a été chargé
- 20. Programmatically vérifier si le calendrier a été rendu
- 21. Vérifier si le contenu a déjà été envoyé en PHP
- 22. onunload - Vérifier si le formulaire a été soumis
- 23. Déterminer si le contenu de dijit.dialog a été affiché
- 24. XQuery - le rendement prévu n'a été trouvée Laissez
- 25. NSURLConnection appelle toujours le délégué AFTER Annuler la méthode a été appelée
- 26. Message affiché dans le répéteur lorsqu'aucune ligne n'a été trouvée
- 27. Comment détecter si le (s) filtre (s) a (ont) été modifié (s) sur une feuille de calcul?
- 28. Calcul d'une date à laquelle une date a été choisie par le nombre de jours
- 29. vérifier si jquery a été chargé, puis le charger si faux
- 30. comment indiquer dans quelle colonne la chaîne de recherche a été trouvée?
Salut Chris, je veux faire quelque chose comme ça direct de la sous-procédure mais cela ne peut quitter le sous, pas la procédure principale. Lert Pianapitham –
Ya ... merci, c'est une bonne solution. Mais en fait, j'ai plus de Subs qui utilisent cette méthode valide. Devrais-je réécrire tout cela? ou ai-je d'autres solutions? –
La seule façon de quitter une méthode est de retourner, quitter ou lancer. Lancer est assez cher et ne devrait être utilisé que lorsque vous ne pouvez plus continuer pour une raison ou une autre. Vous devez également modifier chaque méthode avec Try/Catch pour la prendre en charge. La sortie vous laissera dans un état indéterminé et ne passera pas par les méthodes d'appel. Alors oui, je recommanderais de renvoyer un booléen indiquant si la validation des entrées a réussi ou non. –