2016-06-20 11 views
0

私は次のエラーをキャッチしたい:try catchによって捕まえられない - thatsコールバックは別のスタックで実行されるため。私はあなたが関数内でtry-catchブロックを追加することができ、子プロセスJavascript try catch scope問題

import { spawn } from 'child_process' 
const child = spawn('python', ['plot.py', 'non/existing/file.txt']) 
child.stdout.on('data', console.log.bind(console)) 
child.stderr.on('data', console.log.bind(console)) 

try{ 
    child.on('close', function(code){ 
     throw new Error(`some error that doesnt get caught`) 
    }) 
} 
catch(e){ 
    console.log('catch') 
    console.log(e) 
} 
+1

'try ... catch'は同期式なので、エラーを非同期に処理する必要があります。エラーを処理する方法については、 'child.on( 'error'、callback)'の[docs](https://nodejs.org/api/child_process.html#child_process_child_process_spawn_command_args_options) – elclanrs

答えて

0

を実行スコープでエラーをキャッチする必要があるとして、

は、次のコードの効果をシミュレートするためにそこにいくつかの方法です。

例外がキャッチされると、エラーが見つかります。