2

この質問に対する受け入れられた回答で、彼は、例外をスローするドメインを使用しないことを推奨しています。しかし、これが私がドメインを使用する方法でした。今、私は混乱しています。彼は正しいですか?

4

2 に答える 2

3

その答えが主張するのとは異なり、それがメモリ リークや不安定性を引き起こすという保証はありません。ただし、メモリ リークや不安定性を引き起こさずに例外を処理できることを保証することは困難です。

例外処理に関する混乱の核心は、Node.js ドキュメントの次の文言にあると思います。

JavaScript で throw がどのように機能するかという性質上、参照を漏らしたり、他の種類の未定義の脆弱な状態を作成したりせずに、安全に「中断したところから再開する」方法はほとんどありません。

スローされたエラーに対応する最も安全な方法は、プロセスをシャットダウンすることです。

http://nodejs.org/api/domain.html

実際には、例外を特に危険にする JavaScript に関する特別なことは何もありません。実際のところ、例外はどの言語でも危険になる可能性があります。要点は、アプリケーションが引き起こしている副作用と、途中で停止すると危険なことをしていないかを注意深く検討することです (ヒント: おそらくそうです)。

Joyent のこの設計ガイドでは、「プログラマー エラー」と「操作エラー」を区別しています。あなたの質問に答えて、このガイドはプログラマー エラー (未定義のプロパティの読み取りを含む) を処理しないことを提唱し、Domains および Domainsprocess.on('uncaughtException')は主にこれらの種類のエラーを対象としているため、回避する必要があると主張しています。

于 2014-11-18T00:38:05.123 に答える