Почему исключение может вызвать утечку ресурсов в Node.js?

Если вы посмотрите на начало Node.jsдокументация для доменов Говорится:

По самой природе того, как throw работает в JavaScript, почти никогда не существует способа безопасно «взять то, что вы остановили», без утечки ссылок или создания какого-либо другого неопределенного хрупкого состояния.

Снова в примере кода, который он дает в первом разделе, он говорит:

Хотя мы предотвратили внезапный перезапуск процесса, мы теряем ресурсы как сумасшедшие

Я хотел бы понять, почему это так? Какие ресурсы протекают? Они рекомендуют использовать домены только для выявления ошибок и безопасного завершения процесса. Это проблема со всеми исключениями, а не только при работе с доменами? Это плохая практика, чтобы бросать и ловить исключения в Javascript? Я знаю, что это обычный шаблон в Python.

РЕДАКТИРОВАТЬ

Я могу понять, почему могут возникать утечки ресурсов в языке без сборщика мусора, если вы генерируете исключение, потому что тогда любой код, который вы можете запустить для очистки объектов, не будет работать, если выбрасывается исключение.

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

ОБНОВИТЬ

Я написал блог, объясняющий ответ на этот вопрос немного лучше.Проверьте это

Ответы на вопрос(3)

Ваш ответ на вопрос