Создание исключений для этого кажется немного странным.
Я всегда чувствовал, что приложение с графическим интерфейсом должно предотвращать ввод недопустимых данных в элемент управления, что можно сделать с помощью обработчиков событий.Для данных, которые несовместимы между несколькими элементами управления в форме, они должны быть проверены при нажатии OK или что-либо еще, и если данные не в порядке, запретить закрытие формы и указать ошибку.
ПроверкаЭто также можно сделать до нажатия кнопки ОК, но это не должно препятствовать вводу данных, а только указывает на проблему (и, возможно, отключить кнопку ОК, пока она не будет устранена).По сути, непоследовательное значение, введенное в этом элементе управления, может не быть непоследовательным после того, как пользователь отредактировал значение в следующем элементе управления, к которому он перемещается.
Старайтесь избегать окон сообщений для сообщения об этих ошибках - строка состояния илиТекстовый элемент управления только для чтения внутри формы лучше.
Должна быть определена функция / метод, который выполняет все проверки непротиворечивости формы, но он не должен выдавать исключение.Плохой ввод не является «исключительным» случаем от обычных пользователей - это происходит постоянно, особенно когда я пользователь.Более того, вы должны использовать исключения только тогда, когда обработка ошибок в противном случае испортит структуру вашего кода, чего не должно быть в случае, если «данные в этой форме в порядке - да, хорошо, примите и закройте»обработчик события.
Функция должна просто возвращать код ошибки, чтобы указать, какую ошибку сообщить, или сообщить об ошибке и вернуть флаг ошибки.
Не так давно wxWidgets не былдаже исключительная безопасность - IIRC, вы все равно должны включить защиту от исключений в качестве опции при сборке библиотеки.