Menu
CoddyTech

Ошибки и коды завершения

Часть раздела Основы Node.js путешествия по Node.js на Coddy. Урок 4 из 24.

Если команда завершилась с ошибкой, терминал и скрипты, вызывающие вашу программу, должны об этом знать.

У программы есть два потока вывода: stdout для результатов и stderr для ошибок, которые выводятся с помощью console.error. При завершении программа возвращает код выхода: 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.

challenge icon

Задание

Легко
  • Если команда не указана, выведите Usage: node notes.js <command> [words] в stderr и завершите выполнение с кодом 1.
  • При неизвестной команде выведите Unknown command: <word>, а затем строку с инструкцией по использованию — обе в stderr — и завершите выполнение с кодом 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}`);
}
quiz iconПроверьте себя

В этом уроке есть небольшой тест. Начните урок, чтобы ответить на вопросы и сохранить прогресс.

Все уроки раздела Основы Node.js