0

Это объясняет, как получить трассировку стеки на неперехваченных исключениях:Stack следы от производства OCaml код?

Can I make OCaml produce stack traces on uncaught exceptions?

ли это возможно сделать это в рабочем коде? Более полезно, можно ли регистрировать необработанные исключения и продолжать (например, с другими веб-запросами, если в веб-системе)?

+1

что вы имеете в виду? Как хиты производительности? –

+0

С моей точки зрения (невежества) может быть множество причин, почему это не очень хорошая идея, поэтому я не хочу догадываться, что это такое! :-) Но да, плохая производительность - это одно, что я имел в виду. –

+1

Вы ожидаете, что через несколько минут вы получите более одного неперехваченного исключения? Если нет, то я не думаю, что производительность - это ваша главная забота. –

ответ

-1

Трудно ответить на ваш вопрос, возможно, потому, что не хватает специфики.

Проблема с возобновлением после (неуказанного) неперехваченного исключения заключается в том, что неясно, насколько ваш контекст процесса по-прежнему хорош. Мне кажется гораздо лучше, чтобы ваш процесс вышел из строя (и вышел), и процесс управления более высокого уровня запустит новый новый.

Если вы не ожидаете, что эти сбои произойдут с любой частотой (я надеюсь, это так), это не должно иметь большого значения, поскольку это медленнее, чем продолжение работы в исходном процессе.

Если вы это сделаете, то трассировка стека просто перейдет к стандартной ошибке неудачного процесса. Процесс управления может захватить его и аккуратно упаковать в журнал.

У меня есть такие системы (не в OCaml), и они хорошо работают. Насколько хорошо они работают для вас, зависит от многих факторов, поэтому я могу только предположить, что об этом стоит подумать.

+0

Ага, так что нет конкретного опыта OCaml? Это действительно то, что мне интересно здесь. У меня тоже есть системы, которые работают так, просто не в OCaml :-) Мне не сразу понятно, что -g-сборки, которые, кажется, необходимы для получения трассировки, подходят для использования в производстве (но я ' m заинтересованы не в сборке отладки здесь, а в протоколировании трассировок - проблема сборки отладки просто вызвала вопрос) –

+0

Вы должны сделать некоторые измерения. Бросание мнений не особенно полезно. –

+0

Измерение чего? Цель моего вопроса - получить информацию от сообщества OCaml о том, является ли это довольно разумной вещью в мире OCaml, а не конкретно о производительности. Никакие измерения не скажут мне об этом. –