エラーと終了コード
CoddyのNode.jsジャーニー「Node.jsの基礎」セクションの一部。レッスン 4/24。
コマンドが失敗したときは、ターミナルやプログラムを呼び出すスクリプトにそれを知らせる必要があります。
プログラムには2つの出力ストリームがあります。結果を出力する stdout と、console.error で書き込むエラー用の stderr です。プログラムが終了すると、終了コードを返します。0 は正常に動作したことを意味し、それ以外は失敗したことを意味します。process.exit(1) は、コード 1 でプログラムをただちに停止します。
// node divide.js 6 0
const [a, b] = process.argv.slice(2).map(Number);
if (b === 0) {
console.error('Cannot divide by zero');
process.exit(1);
}
console.log(a / b);コードの横にあるターミナルでは、stderr が赤色で表示され、終了コードが 0 でない場合はそのコードが出力されます。
チャレンジ
簡単- コマンドが指定されていない場合は、
Usage: node notes.js <command> [words]を標準エラー出力に表示し、終了コード1で終了します。 - 不明なコマンドの場合は、
Unknown command: <word>を表示してから使用方法の行を標準エラー出力に表示し、終了コード1で終了します。
node notes.jsを実行し、次にnode notes.js remove 3を実行します。
自分で試してみよう
// あなたのメモツールはここから始まります。
const [command, ...words] = process.argv.slice(2);
const text = words.join(' ');
if (command === 'add') {
console.log(`Adding: ${text}`);
} else if (command === 'list') {
console.log('No notes yet');
} else {
console.log(`Unknown command: ${command}`);
}
このレッスンには短いクイズがあります。レッスンを始めて解答し、進捗を記録しましょう。