Menu
CoddyTech

Errori e codici di uscita

Fa parte della sezione Fondamenti di Node.js del percorso Node.js di Coddy. Lezione 5 di 33.

Quando un comando non riesce, chi si trova al terminale deve poter vedere il motivo e qualsiasi programma che ha eseguito il tuo deve sapere che non è riuscito.

Un programma ha due flussi di output: stdout per i risultati e stderr per gli errori, scritti con console.error. Quando termina, restituisce un codice di uscita: 0 significa che ha funzionato, qualsiasi altro valore significa che non è riuscito. process.exit(1) arresta immediatamente il programma con il codice 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);

Il terminale accanto al tuo codice mostra stderr in rosso e stampa il codice di uscita quando non è 0.

challenge icon

Sfida

Facile

Quando qualcuno usa il tuo strumento in modo errato, dovrebbe spiegare come usarlo e segnalare al terminale che l'operazione non è riuscita. I programmi lo fanno con il flusso degli errori, stderr, e un codice di uscita.

  1. In notes.js, modifica il ramo else finale, quello che stampa Unknown command:. Gli errori vanno su stderr, quindi stampali con console.error invece di console.log.
  2. Quando è stato digitato un comando sconosciuto, stampa queste due righe su stderr, in quest'ordine:
    Unknown command: remove
    Usage: node notes.js <command> [words]
    La prima riga indica la parola digitata: in questo caso remove, da node notes.js remove 3. La seconda riga è sempre la stessa. Copiala esattamente, con <command> e [words] così come sono scritti: fanno parte del testo, non sono valori da inserire.
  3. Quando non è stato digitato nulla dopo node notes.js, stampa solo la riga di utilizzo su stderr. Non stampare Unknown command: undefined.
  4. In entrambi i casi, termina il programma con il codice di uscita 1, che significa «non è riuscito».
  5. add e list funzionano come prima. node notes.js add Buy milk stampa ancora Adding: Buy milk e termina con il codice di uscita 0.

Prova: premi Run lasciando vuoto il campo dopo $ node notes.js. Vedrai la riga di utilizzo in rosso e il terminale mostrerà il codice di uscita 1. Poi digita remove 3 e premi Invio: vedrai Unknown command: remove e la riga di utilizzo, entrambe in rosso, e il codice di uscita 1. Poi digita add Buy milk: vedrai Adding: Buy milk nel colore normale e nessun codice di uscita, perché il terminale nasconde lo 0.

Provalo tu

// Il tuo strumento per le note inizia qui.
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 iconMettiti alla prova

Questa lezione include un breve quiz. Inizia la lezione per rispondere e tenere traccia dei tuoi progressi.

Tutte le lezioni di Fondamenti di Node.js

Esercitati da solo: Playground Express