Если обработка исключений должна быть централизована, дизайн компонентов WinForm имеет недостатки? - PullRequest
1 голос
/ 22 декабря 2008

Или любой другой дизайн, в котором графические виджеты являются первым портом вызова, где необработанное исключение убьет приложение?

Нам всем нужно одно главное: «поймать все» в целях сохранения лица (хотя в большинстве случаев у него не должно быть функции «продолжить»), но невозможно легко реализовать его с помощью графических виджетов, которые являются первым портом вызов. Этот дизайн имеет недостатки или я где-то упускаю трюк?

Я спрашиваю об этом, потому что я читал статью от разработчика языка, и он заявил, что обработка исключений должна быть централизованной, и первое, что пришло мне в голову, это механизм событий WinForm, где это трудно.

Слушала ли его команда WinForm / GUI или к тому времени было уже слишком поздно?

Ответы [ 2 ]

2 голосов
/ 22 декабря 2008

Вы можете поместить попытку / поймать вокруг Application.Run и обработать Application.ThreadException. В обработчиках вы можете записать исключение и выйти.

Помимо вышеизложенного, я обычно помещаю обработчик исключений вокруг всех вызовов бизнес-уровня (и всех обращений к внешним ресурсам на уровне клиента, например, экспорт в файл), которые отображают ошибку, но не выходят из приложения .

1 голос
/ 22 декабря 2008

Вам известно о Application.ThreadException ? Я не говорю, что это обязательно лучший ответ, но по крайней мере ответ ...

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...