Социальные сети

Недавно с моей подачи в ru_cpp завязалась дискуссия стоит ли в программе ловить исключения типа нарушения защиты памяти, деления на ноль, то есть проще говоря SEH исключения. Особенно сильные возражения вызвало использование конструкции catch(...), которая, при наличии флага компляции /EHa ловит и structured исключения.

Аргументы против ловли всего следующие:
1. access violation - это вам не шутки. Наверняка память уже засрана где-нибудь, так что доверять текущему состоянию программы нельзя. Скорее всего что-нибудь сломается потом и весьма скоро. И это ещё в лучшем случае. В более худшем юзеры получат неправильный результат. А уж в совсем плохом случае злые хакеры запустят троянов от имени нашего процесса и th3y will 0wn us... страшно
2. Чисто с точки зрения отладки, самое полезное, что можно получить в такой ситуации - это core dump сразу по возникновению первого же исключения.

Аргументы за ловлю у меня тоже есть, хотя в силу занятости я их прямо по месту не высказал или высказал невнятно:

1. В ситуации когда имеются плагины, или какие-либо другие методы внедрения пользовательского кода в многопользовательский сервер, очень не желательно чтобы криво написанное расширение валило целый сервер с 500 юзерами. Это конечно не отменяет опасений о том, что будет только хуже. Ну и конечно security issues.

2. У меня нет конкретной статистики, но есть неслабое подозрение, что ошибки защиты памяти гораздо чаще случаются от попытки читать, чем писать и на порядок чаще от попытки читать\писать по нулевому адресу,чем по любому другому. Запись по нулевому адресу состояние программы не испортит (Mac OS 8 мы тут не рассматриваем) и потому валить целый процесс из-за такой ерунды расточительно

3. В вырожденном случае, который имеется у меня, программа выполняет одни и теже вычисления раз за разом, день за днём, со слегка разными данными каждый раз. Одна ошибка в какой-нибудь библиотеке в одном вычислении, которое может быть не очень и важно пользвателям, валит целый сервер при каждой попытке перезапуска.

Несмотря на всё вышеперечисленное, я лично считаю что fail fast - это очень полезная парадигма. Есть достаточно механизмов чтобы завалить и перезапустить сервер при достаточных основаниях, что он не делает то что нужно. Однако в моём конкретном случае я убеждён, что валить слишком часто тоже не стоит.






Последние новости


Шаг 5. Выбираем фирменное наименование организации

Если вы собираетесь регистрировать новое юридическое лицо, то перед вами неизбежно встают необходимость выбора его названия и ряд сопутствующих вопросов. Следует ли проверять выбранное наименование организации на уникальность перед подачей документов на регистрацию? Можно ли зарегистрировать компанию с таким же наименованием, как и у другой, уже существующей орган...
Читать далее »

Шаг 4. Выбор системы налогообложения

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

Аренда помещений

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

Шаг 3. Выбираем место нахождения организации

МЕСТО НАХОЖДЕНИЯ ОРГАНИЗАЦИИ, ЕЕ ЮРИДИЧЕСКИЙ, ФАКТИЧЕСКИЙ И ПОЧТОВЫЙ АДРЕСА В ГК РФ приведено понятие «место нахождения юридического лица» – так называемый юридический адрес, официально зарегистрированный в ЕГРЮЛ. Однако юридическое лицо может располагаться и по другому адресу – фактическому. В гражданском законодательстве не содержит...
Читать далее »

Карточка

С образцами подписей и оттиска печати ...
Читать далее »

Форма

Документа, подтверждающего наличие лицензии Приложение 26 СЕРТИФИКАТ СООТВЕТСТВИЯ ...
Читать далее »

Уведомление

О регистрации юридического лица в территориальном органе Пенсионного фонда Российской Федерации по месту нахождения На территории Российской Федерации Приложение 22 Свидетельство О регистрации страхователя в территориальном фонде Обязательного медицинского страхования При обязательном мед...
Читать далее »