Menu
CoddyTech

Hatalar ve Çıkış Kodları

Coddy'nin Node.js Journey'sinin Node.js Temelleri bölümünün bir parçası. Ders 5 / 33.

Bir komut başarısız olduğunda, terminaldeki kişinin bunun nedenini görmesi gerekir ve seninkini çalıştıran herhangi bir program da başarısız olduğunu bilmelidir.

Bir programın iki çıktı akışı vardır: sonuçlar için stdout ve hatalar için console.error ile yazılan stderr. Program sona erdiğinde bir çıkış kodu döndürür: 0 başarılı olduğu, diğer tüm değerler başarısız olduğu anlamına gelir. process.exit(1), programı 1 koduyla hemen durdurur.

// 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);

Kodunun yanındaki terminal, stderr'yi kırmızı renkte gösterir ve çıkış kodu 0 olmadığında bu kodu yazdırır.

challenge icon

Görev

Kolay

Birisi aracını yanlış kullandığında, aracı nasıl kullanacağını belirtmeli ve terminale işlemin başarısız olduğunu bildirmelidir. Programlar bunu hata akışı olan stderr ve bir çıkış koduyla yapar.

  1. notes.js içinde, Unknown command: yazdıran son else dalını değiştir. Hatalar stderr'e gider, bu yüzden bunları console.log yerine console.error ile yazdır.
  2. Bir komut yazılmış ama tanınmıyorsa, şu iki satırı bu sırayla stderr'e yazdır:
    Unknown command: remove
    Usage: node notes.js <command> [words]
    İlk satır, yazılan sözcüğü belirtir: burada node notes.js remove 3 komutundaki remove. İkinci satır her zaman aynıdır. <command> ve [words] bölümleri yazıldığı gibi kalacak şekilde satırı aynen kopyala: bunlar metnin bir parçasıdır, doldurulacak yer tutucular değildir.
  3. node notes.js komutundan sonra hiçbir şey yazılmadığında, stderr'e yalnızca kullanım satırını yazdır. Unknown command: undefined yazdırma.
  4. Her iki durumda da programı, “başarısız oldu” anlamına gelen 1 çıkış koduyla sonlandır.
  5. add ve list eskisi gibi çalışır. node notes.js add Buy milk komutu hâlâ Adding: Buy milk yazdırır ve 0 çıkış koduyla sonlanır.

Dene: $ node notes.js komutundan sonraki kutuyu boş bırakıp Çalıştır'a bas. Kullanım satırını kırmızı görürsün ve terminal 1 çıkış kodunu gösterir. Ardından remove 3 yazıp Enter'a bas: Unknown command: remove satırını ve kullanım satırını ikisini de kırmızı görürsün; çıkış kodu 1 olur. Sonra add Buy milk yaz: Adding: Buy milk satırını normal renkte görürsün ve terminal 0'ı gizlediği için çıkış kodu görünmez.

Kendin dene

// Not alma aracın burada başlıyor.
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 iconKendini test et

Bu ders kısa bir quiz içerir. Soruları yanıtlamak ve ilerlemeni kaydetmek için derse başla.

Node.js Temelleri bölümündeki tüm dersler

Kendi başına pratik yap: Express playground