Node.jsでプログラムを実行中に強制的に終了させたい場合があります。そんな時に使えるのが`process.exit()`関数です。この記事では、`process.exit()`の基本的な使い方から応用的な使用方法まで解説します。

process.exit()の基本的な使い方

// プログラムを終了
process.exit();

// または
process.exit(0);

`process.exit()`は引数に終了コードを指定できます。引数を省略した場合は`0`として扱われます。

終了コードの意味

  • `0`: 正常終了
  • `1`: エラーによる異常終了
  • その他の数値: 特定の終了状態を表す
// エラーで終了する場合
process.exit(1);

// カスタムの終了コードを使用する場合
process.exit(2);

実践的な使用例

エラーハンドリングでの使用

try {
  // 何らかの処理
  throw new Error('エラーが発生しました');
} catch (error) {
  console.error('エラー:', error.message);
  process.exit(1);
}

条件による終了

const checkCondition = () => {
  if (someCondition) {
    console.log('条件を満たしていないため終了します');
    process.exit(1);
  }
  // 処理を続行
};

注意点

1. 非同期処理の完了前の終了

`process.exit()`は即座にプログラムを終了するため、実行中の非同期処理は完了しない可能性があります。

// 非推奨の例
fs.writeFile('example.txt', 'データ', () => {
  console.log('保存完了');
});
process.exit();

// 推奨の例
fs.writeFile('example.txt', 'データ', () => {
  console.log('保存完了');
  process.exit();
});

2. クリーンアップ処理の実行

`process.on('exit', callback)`を使用することで、終了前に必要な処理を実行できます。

process.on('exit', (code) => {
  console.log(`終了コード: ${code}`);
  // クリーンアップ処理
});

まとめ

  • `process.exit()`を使用してプログラムを明示的に終了できます
  • 終了コードで終了状態を表現できます(0: 正常、1: エラー)
  • 非同期処理の完了を待つ必要がある場合は注意が必要です
  • `process.on('exit')`でクリーンアップ処理を追加できます

これらの知識を活用することで、より制御の効いたプログラムの終了処理を実装することができます。