1

私は次のように標準のソケットサーバー(HTTPなし)のセットアップを持っています(考案された):

var server = net.createServer(function(c) { //'connection' listener
  c.on('data', function(data) {
    //do stuff here
    //some stuff can result in an exception that isn't caught anywhere downstream, 
    //so it bubbles up. I try to catch it here. 
    //this is the same problem as just trying to catch this: 
    throw new Error("catch me if you can");
  });
}).listen(8124, function() { //'listening' listener
   console.log('socket server started on port 8124,');
});

ここで問題となるのは、まったくキャッチされないエラーをスローするコードがいくつかあり、サーバーがクラッシュすることです。最後の手段として、このレベルでそれらをキャッチしたいのですが、私が試したものはすべて失敗します。

  • server.on("error",....)
  • c.on("error",...)

c方法はわかりませんが、おそらく(接続)ではなくソケットに到達する必要があります。

私はノード0.6.9にいます

ありがとう。

4

2 に答える 2

3
process.on('uncaughtException',function(err){
   console.log('something terrible happened..')
})
于 2012-09-26T23:16:46.963 に答える
0

自分で例外をキャッチする必要があります。説明した方法で例外を処理できるようにするイベントは、接続オブジェクトにもサーバーオブジェクトにもありません。次のようなサーバーのクラッシュを回避するには、イベントハンドラーに例外処理ロジックを追加する必要があります。

c.on('data', function(data) {
  try {
     // even handling code
  }
  catch(exception) {
    // exception handling code
  }
于 2012-09-26T19:49:07.567 に答える