2016-05-06 1 views
0

私はnode.jsに少なくとも4ヶ月間問題があると思っていますが、今は修正が必要です。私はすでに再インストールしようとしています、現在私は6.0.0を使用しています。新しいエラーをスローせず、node.jsが存在しない変数について文句を言わない

私は新しいエラー( 'メッセージ')をスローします。私がしようとすると、エンジンによって無視されています:

console.log('test'); 
throw new Error('error'); 
console.log('test'); 

私だけを参照してください。

また
test 
test 

を、私は存在しない変数にCONSOLE.LOGしようとすると、何も起こりません。

何ができますか?

ありがとうございました。

+0

あなたのコードが2回呼び出されていると思われるので、最初の 'console.log( 'test');'が2回実行されます。起こっていると思われることは実際に起こっていることではないので、より多くの文脈を示す必要があります。第2の 'console.log( 'test')を' console.log( 'test2');に変更することから始めて、あなたは少なくとも1対他の実行の違いを知ることができます。二度。また、適切な文脈を見るために、このコードが何であるかを教えてください。 – jfriend00

+0

そして 'consoleを実行する。log(nonExistent) 'はおそらく例外をスローします。その例外が非同期コールバックの内部にある場合、例外は何も記録せずに静かに奪取される可能性があります。 – jfriend00

答えて

0

あなたのコードのコンテキストがあなたを混乱させる可能性があります。私たちは、このコードのコンテキストを示して、2番目のものを変更した場合、2番目のログステートメントと2番目に呼び出されたコードとの違いを知ることができるように出力することができます(これは私の推測です)。

そして、あなたのノードのインストールのバニラテストとして、私はあなたがこのコードのセットを取り、スローtest.jsという名前のファイルにそれを置くことを示唆していると、ちょうどそのファイルを実行したい:

// throw-test.js 

try { 
    console.log('test1'); 
    throw new Error('error'); 
    console.log('test2'); 
} catch(e) { 
    console.log('log exception'); 
} 
をあなたが node throw-test.jsを実行すると

は、コンソールで確認する必要があります

test1 
log exception 

私が実行しているのNode.jsで見るまさにだと予想されるものであること。事態を混乱することができ


他のもの:

  1. あなたのコードが二度呼ば取得される可能性がありますし、あなたが得る出力を得る理由です。
  2. あなたのコードは例外を食い止める非同期コールバックの中にある可能性があります(そのため、例外が記録されることはありません)。
  3. あなたのコードには別の場所にconsole.log('test')があります。そのため、2つのコードが表示されます。あなたの他のコメントについては

、コード:

console.log(nonExistent); 

ReferenceError例外がスローされます。ログにその例外が表示されるかどうかは、このコードの場所によって異なります。再度、非同期コールバックの内部にある場合、例外が発生する可能性があります(特定のコールバックによって異なります)。

+0

うん、うん、非同期コードのために問題が起こっている!なぜ非同期コードが例外を食べるのか? –

+0

@ジョアン - 非同期コードによって異なります。すべての非同期コードではありません。あなたのコードは2回呼び出されましたか?あなたはそれが2回記録されたのを見たのはなぜですか? – jfriend00

+0

Yeap、私のコードは1から1000回で呼び出されますが、実際にはコマンドラインオプション(--times [NUMBER])として渡すことによって何回質問しますか –

関連する問題