作成 2011.11.27
更新 2011.11.27
Node.js の try-catch-finally のネスト検証
サンプルコード
var fs = require('fs');
var realPath = 'no data';
try{
  console.log('1');
  try{
    console.log('2');
    realPath = fs.realpathSync('/nofile');
    console.log('3');
  }catch(inner_error){
    console.log('inner error');
    console.log(inner_error);
  }finally{
    console.log('inner finally:'+realPath);
  }
}catch(outer_error){
  console.log('outer error');
  console.log(outer_error);
}finally{
  console.log('outer finally:'+realPath);
}
実行結果
V8 エンジンだから普通にネストできる。
また、例外が発生した関数の返り値は代入されない。
1
2
inner error
{ [Error: ENOENT, no such file or directory '/nofile'] errno: 34, code: 'ENOENT', path: '/nofile', syscall: 'lstat' }
inner finally:no data
outer finally:no data
タグ: Node.js

©2004-2017 UPKEN IPv4