![[personal profile]](https://www.dreamwidth.org/img/silk/identity/user.png)
В кои-то веки я дорвался до GUI.
Удачным решением порадовал Микрософт программистов новой 64-битной платформы.
Теперь, если окно обрабатывает оконное сообщение, пришедшее из другой аппликации или даже из другого треда той же аппликации, и при этой обработке случается исключение (ну, например, такая мелочь как Access Violation), то аппликация пользователя вовсе не крешится, а продолжает себе работать как ни в чем не бывало.
Подробнее - исключение долетает до участка кода, пробрасывающего в окно "внешние" сообщения, и там окончательно поглощается, вообще не долетая до основного кода аппликации. Излишне говороить, что при поглощении UnhandledExceptionFilter не вызывается.
Кажется, подобной надежностью (толерантностью к исключениям) обладали раньше и COM сервера, теперь же и обычные пользовательские апплкации 64-х битной платформы. К сожалению, если оконное сообщение было послано тем же самым тредом, как это обычно бывает в GUI-программировании, то аппликация всё-таки может закрешиться, так как исключение уже никто по дороге не словит. Это может создать ложное впечатление о неработоспособности аппликации у QA и даже конечного пользователя. Надеюсь, в будущих версиях этот недочет будет исправлен.
Удачным решением порадовал Микрософт программистов новой 64-битной платформы.
Теперь, если окно обрабатывает оконное сообщение, пришедшее из другой аппликации или даже из другого треда той же аппликации, и при этой обработке случается исключение (ну, например, такая мелочь как Access Violation), то аппликация пользователя вовсе не крешится, а продолжает себе работать как ни в чем не бывало.
Подробнее - исключение долетает до участка кода, пробрасывающего в окно "внешние" сообщения, и там окончательно поглощается, вообще не долетая до основного кода аппликации. Излишне говороить, что при поглощении UnhandledExceptionFilter не вызывается.
Кажется, подобной надежностью (толерантностью к исключениям) обладали раньше и COM сервера, теперь же и обычные пользовательские апплкации 64-х битной платформы. К сожалению, если оконное сообщение было послано тем же самым тредом, как это обычно бывает в GUI-программировании, то аппликация всё-таки может закрешиться, так как исключение уже никто по дороге не словит. Это может создать ложное впечатление о неработоспособности аппликации у QA и даже конечного пользователя. Надеюсь, в будущих версиях этот недочет будет исправлен.