Vlad писал(а):
Madzi писал(а):
Я сейчас не помню точно кто это сказал (если нужно будет уточнить, то уточню, но кажется Дейкстра): "Если в программе возникает ошибка, то программа должна завершиться аварийно, даже если ошибка не существенная и программа могла бы продолжить работать. Программа с ошибкой - вещь не допустимая."
Ох уж эти теоретики...
Что поделать. Без теории никому нельзя. Иначе будем постоянно ходить по граблям.
Vlad писал(а):
Вам бы понравилось, если бы винда выключала комп на каждой ошибке?
Или если BB схлопывался на первом же сработавшем ASSERT'e?
Зависит от ситуации. И от того, что называть "программой"
Мне бы очень понравилось, потому что винду бы не смогли продать до тех пор пока не выловили и уничтожили большинство присутствующих в ней ошибок. Не понял вашу вторую часть, несмотря на смайлик. У вас "программой" что-то ещё называется?
Vlad писал(а):
P.S. Кстати, так нелюбимые вами исключения позволяют замечательно разрулить такую ситуацию (в отличие от кошмарных кодов ошибок). А именно - отдать принятие решение о том "схлопываться" или "что-то сделать" тому, кто достаточно компетентен для этого.
По этому поводу есть старая еврейская мудрость: "Не бывает безвыходных ситуаций, бывают ситуации в которые не попасть". Хорошая программа не будет обрабатывать коды ошибок, она просто не допустит ошибочной ситуации.
Не знаю, что вы имели ввиду отправляя меня в википедию
http://ru.wikipedia.org/wiki/%D0%9E%D0%B1%D1%80%D0%B0%D0%B1%D0%BE%D1%82%D0%BA%D0%B0_%D0%B8%D1%81%D0%BA%D0%BB%D1%8E%D1%87%D0%B5%D0%BD%D0%B8%D0%B9Википедия писал(а):
Обработка исключительных ситуаций (англ. exception handling) — механизм языков программирования, предназначенный для описания реакции программы на ошибки времени выполнения и другие возможные проблемы (исключения), которые могут возникнуть при выполнении программы и приводят к невозможности (бессмысленности) дальнейшей отработки программой её базового алгоритма. В русском языке также применяется более короткая форма термина: «обработка исключений».
Я внимательно изучил статью и хочу вам сказать, что здесь, в нарушение любой структурности, имеет место скрытая передача управления через жопу (извините за мой французский). Я конечно понимаю, что некоторые от этого кайф ловят... Но у меня стандартная ориентация.
Буду рад, если вы мне докажите, что я ошибаюсь.
И ответная просьба - прочтите наконец Дейкстру и воздержитесь от написания сюда постов, если они прямо противоречат тому, о чём вы прочтёте.