Показать сообщение отдельно
Старый 02.07.2014, 22:21   #3  
Maxim Gorbunov is offline
Maxim Gorbunov
Administrator
Соотечественники
Лучший по профессии 2009
 
2,483 / 646 (26) +++++++
Регистрация: 27.11.2001
Адрес: Dubai, UAE
Уважаемый mfp умалчивает об одном важном отличии Debug::assert() от throw error(). В случае, если условие в Debug::assert() не выполняется, программа продолжает работать дальше. То есть, пользователи видят ошибку, если есть дебаггер, то он запускается, но при этом выполнение кода продолжается как ни в чём не бывало.

Не самая приятная особенность, если честно. Ведь в большинстве случаев assert() появляется не просто так, а для обозначения того, что нижеследующий код при невыполнении некоторых условий может работать некорректно. Логично было бы в такой ситуации код не выполнять, по-моему.
__________________
Not registered yet? Register here!
Have comments, questions, suggestions or anything else regarding our web site? Don't hesitate, send them to me