> -- Madzi писал(а):
> Позвольте спросить вас с Русланом, а что мешает реализовать такую сигнальную шину без механизма исключений? На уровне операционной системы или надстройки над ней. Да хотя бы на уровне приложения.

Поясню. Если Вы обратили внимание, в отношении исключений я разграничил области прикладного ПО и системного ПО. В прикладном ПО использование исключений, на мой взгляд, требуется только в очень специфических областях, как правило, активно работающих с (нестандартным) железом (например, встроенные системы). А также при особых требованиях проекта. Что касается сферы системного ПО, то это и есть, прежде всего, ОС.

Я сторонник жесткого подхода -- не размазывать системные вызовы по всему исходнику, а локализовывать и закреплять в соотв. "саркофагах". Правило простое: нельзя в проекте использовать системные вызовы, только свою четко регламентированную прослойку, у которой есть исполняющий (конкретизирующий) тонкий слой (своя run-time system). В нем и производится статическая либо динамическая коммутация с операционной средой. Подобное подмножество легче контролировать и тестировать на предмет изменений характеристик, внесенных при очередном апдейте разработчиками ОС (или соотв. сторонних библиотек).

И как сторонник жесткого подхода я против какой-то имитации программистом механизма обработки исключений напрямую средствами ОС. Этот механизм либо должен быть штатно в языке, либо должен быть решен библиотекой, служащей специфической прослойкой над ОС и/или RTS языка. Впрочем, именно библиотечным решением в свое время, лет 15 назад, занимался для Модулы-2, когда только обсуждался ISO-стандарт языка.
Найти детали можно в статье "Еще один подход к реализации механизма обработки исключений" (1993) . См.http://www.europrog.ru/oberon.html