Здравствуйте, Sinclair, Вы писали:
D>>>А чем тебе сервера-то не угодили?
aik>>Их не видно. А ассерт ставит колом процесс, пока ты по кнопке не жмакнешь. Там вообще правила более жесткие, чтобы лепить даже лишний вывод в лог.
S>Ты, наверное, какие-то не те ассерты встречал.
S>Настоящие ассерты:
S>а) не имеют никакой связи с кнопками. Их обычная функция — вызвать аварийную остановку, при этом гарантируя запись/выдачу соответствующей информации. Отличие от самопроизвольной остановки — именно в наличии этой дополнительной информации
Аварийная остановка — плохо. У тебя система видео-наблюдения работает или диск пишется — аварийная остановка фатальна.
Вот сейчас с фирмварью вожусь — ну куда там ассертить? Это power management controller, он повиснет — дорогой, очень дорогой телекомный ящик встанет колом и целая деревня без телефонов сидеть будет, например. Там и аварийно остановиться нельзя даже.
S>б) обладают способностью автоматически исчезать из релизного кода. Потому, что ассерт — это средство отладки. Его задача не в том, чтобы помочь обработать ошибку в данном коде, а в том, чтобы найти ошибку в коде, который им пользуется.
Ну да, и тогда концов не найдешь почему у клиента, например, падает. Ведь у него ж релиз, ассертов нет.
S>А про какие ассерты ты говоришь?
Да про всякие
Я веду к тому, что случаи — они разные бывают, и универсальное решение только одно — "убицца аб стенку, выпеть йад, ехать в бабруйск" и все такое прочее.