Re[11]: Необходимость ASSERT
От: aik Австралия  
Дата: 19.10.05 10:53
Оценка:
Здравствуйте, Sinclair, Вы писали:

D>>>А чем тебе сервера-то не угодили?

aik>>Их не видно. А ассерт ставит колом процесс, пока ты по кнопке не жмакнешь. Там вообще правила более жесткие, чтобы лепить даже лишний вывод в лог.
S>Ты, наверное, какие-то не те ассерты встречал.
S>Настоящие ассерты:
S>а) не имеют никакой связи с кнопками. Их обычная функция — вызвать аварийную остановку, при этом гарантируя запись/выдачу соответствующей информации. Отличие от самопроизвольной остановки — именно в наличии этой дополнительной информации

Аварийная остановка — плохо. У тебя система видео-наблюдения работает или диск пишется — аварийная остановка фатальна.
Вот сейчас с фирмварью вожусь — ну куда там ассертить? Это power management controller, он повиснет — дорогой, очень дорогой телекомный ящик встанет колом и целая деревня без телефонов сидеть будет, например. Там и аварийно остановиться нельзя даже.

S>б) обладают способностью автоматически исчезать из релизного кода. Потому, что ассерт — это средство отладки. Его задача не в том, чтобы помочь обработать ошибку в данном коде, а в том, чтобы найти ошибку в коде, который им пользуется.


Ну да, и тогда концов не найдешь почему у клиента, например, падает. Ведь у него ж релиз, ассертов нет.

S>А про какие ассерты ты говоришь?


Да про всякие Я веду к тому, что случаи — они разные бывают, и универсальное решение только одно — "убицца аб стенку, выпеть йад, ехать в бабруйск" и все такое прочее.
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.