Похоже на Guruspeak
Это звучит как еще одно из тех общих указаний, которые проповедуют гуру , что само по себе неплохой совет. Однако это руководство может быть легко применено к местам, к которым оно не относится. Я думаю, что ключевая фраза, которую нужно помнить, которую вы использовали выше, была «одна стратегия кодирования», потому что эта стратегия очень полезна в некоторых областях, но может быть весьма вредной в других.
Смерть - это потрясающе - если у вас есть много тесно связанных компонентов, состояние которых зависит друг от друга, то исключением может быть катастрофическое событие. Однако одна из ваших целей должна состоять в том, чтобы кодировать таким образом, чтобы один сбой не приводил к выходу из строя всей системы (цель уведомления).
Что бы вы подумали о следующих приложениях, умирающих при обычном исключении:
- Медицинские приборы
- Электростанции
- Системы обнаружения вторжений
За исключениями, которые вы ловите в try / catch - вы действительно должны ожидать их и обрабатывать их. Для всех остальных случаев хорошо быстро провалиться до прогнозируемого уровня выполнения. Итак, если вы работаете с сетевым или веб-обработчиком, почему бы просто не умереть текущей операции? Вы действительно нуждаетесь в целом приложении, чтобы выйти из строя?
Это становится все более важным, если вы разрабатываете приложение, которое является критически важным и имеет открытый интерфейс. Если есть доступные исключения, которые могут привести к отключению приложения, то это становится вектором атаки для хакеров, которые намерены вызвать атаку типа «отказ в обслуживании».
Крайние случаи злоупотребления этой стратегией слишком велики, чтобы хвалить ее. Гораздо лучший подход - решить проблему вашего домена. Поймите, к чему ведет эта стратегия, и примените соответствующие детали к вашей проблеме.
Предостережения: я работаю на серверных системах, где время безотказной работы и безопасность имеют решающее значение.
РЕДАКТИРОВАТЬ: я думаю, меня смутило то, что подразумевалось под "process die" - это была ссылка на все приложение или только на запущенный поток и т. Д.?