Здравствуйте, alexeiz, Вы писали:
A>Зато исключение в Dispose может оставить программу в неопределенном состоянии, и это явно хуже, чем "обрушить прогу"
А почему "в неопределенном состоянии"? Даже если один или несколько Dispose в пределах блока выбросит исключение, все остальные Dispose все равно будут вызваны. К сожалению, я не нашел данных, какое из этих исключений будет обработано

Или ты что-то другое имел в виду?
A>И кстати, не "обрушить", а вызвать terminate(), в котором ты волен произвести необходимые действия перед завершением (послать crash dump разработчику, например).
Программа перестанет работать, не сохранив своих данных, не завершив сеанс работы и т.п. Крэш дамп конечно поможет разработчикам, но юзеру от этого легче не станет