Lancer des exceptions pour cela semble un peu étrange.
J'ai toujours pensé qu'une application graphique devrait empêcher la saisie de données invalides dans un contrôle, ce qui peut être fait en utilisant des gestionnaires d'événements. Pour les données qui sont incohérentes entre plusieurs contrôles sur un formulaire, cela doit être validé lorsque OK est pressé ou quoi que ce soit, et si les données ne sont pas correctes, empêchez la fermeture du formulaire et indiquez l'erreur. La validation peut également être effectuée avant d'appuyer sur OK, mais elle ne devrait pas empêcher la saisie des données, indiquer uniquement le problème (et éventuellement désactiver le bouton OK jusqu'à ce qu'il soit corrigé). Fondamentalement, la valeur incohérente entrée dans ce contrôle peut ne pas être incohérente une fois que l'utilisateur a modifié la valeur du contrôle suivant vers lequel il se dirige. Essayez d'éviter les boîtes de message pour signaler ces erreurs - une barre d'état ou un contrôle de texte en lecture seule dans le formulaire est préférable.
Une fonction/méthode doit être définie pour effectuer toutes les vérifications de cohérence pour le formulaire, mais elle ne doit pas déclencher d'exception. Une mauvaise entrée n'est pas le cas "exceptionnel" des utilisateurs typiques - cela arrive tout le temps, surtout quand je suis l'utilisateur. Plus précisément, vous ne devriez utiliser des exceptions que lorsque la gestion des erreurs perturberait la structure de votre code, ce qui ne devrait pas être le cas dans un "est-ce que les données dans ce formulaire sont OK - oui, bien, accepter et fermer" gestionnaire d'événements.
La fonction doit simplement renvoyer un code d'erreur pour indiquer quelle erreur signaler - ou signaler l'erreur elle-même et retourner un indicateur d'erreur. Il n'y a pas si longtemps, wxWidgets n'était même pas exceptionnellement sûr - IIRC, vous devez toujours activer la sécurité des exceptions en tant qu'option lorsque vous construisez la bibliothèque.