0Pricing
TypeScript Academy · Ders

Hata Fırlatmanın Sorunu

Özel durumların başarısızlığı tür sisteminden neden gizlediğini öğrenin.

Hata Fırlatmanın Sorunu, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 4 dersinin 1. dersidir. Aşağıdan dersin tamamını ücretsiz okuyabilir, sonra tarayıcıda yerleşik kod editörü ve 7/24 yapay zeka koçu ile uygulamalı olarak pratik yapabilirsin. Bu, TypeScript Academy öğrenme yolunun bir parçasıdır ve ilerlemeniz web ve CoddyKit uygulaması arasında senkronize olur. TypeScript Academy kursu toplamda 4 dersten oluşur.

İstisnalar Görünmezdir

Bir işlev throw ettiğinde, imzası bunu belirtmez. Tür sistemi göremez hangi işlevlerin başarısız olabileceğini; bu nedenle çağıranları hataları ele almaya yönlendiren bir derleyici uyarısı yoktur.

İstisna Fırlatan Bir İşlev

Bu işlev her zaman bir sayı döndürüyor gibi görünür, ancak istisna fırlatabilir. number dönüş türü başarısızlık durumunu tamamen gizler.

function parsePort(s: string): number {
  const n = Number(s);
  if (Number.isNaN(n)) throw new Error("bad port");
  return n;
}
console.log(parsePort("8080")); // 8080

Çağıranlar Yakalamayı Unutur

Çağıranı çağrıyı try/catch içine almaya zorlayan hiçbir şey yoktur. Hata sorunsuzca derlenir ve yalnızca çalışma zamanında çökme olarak ortaya çıkar.

const port = parsePort("oops");
// No compile error; throws at runtime, possibly crashing the app.

İstisna Yakalama Tür Bilgisini Kaybettirir

Yakalasınız bile yakalanan değer unknown (veya any) türündedir. Hatanın yapısı izlenmediğinden, işleme tahmine dönüşür.

try {
  parsePort("x");
} catch (e) {
  // e: unknown -> you must narrow it manually
}

Hataları Değer Olarak Kullanma

Alternatif, başarısızlığı işlevin döndürdüğü sıradan bir değer haline getirmektir; işlevin fırlattığı bir istisna değil. Böylece dönüş türü her iki sonucu da açıkça gösterir.

Değer Döndüren Bir Taslak

İstisna fırlatmak yerine başarıyı veya başarısızlığı açıklayan etiketli bir nesne döndürün. Çağıran, değeri kullanmadan önce bu nesneyi incelemelidir.

type ParseResult =
  | { ok: true; value: number }
  | { ok: false; error: string };

Tür Artık Gerçeği Söylüyor

ParseResult döndüren bir işlev, başarısız olabileceğini bildirir. Böylece derleyici, çağıranın başarısızlık dalını ele almasını zorunlu kılar.

function parsePort(s: string): ParseResult {
  const n = Number(s);
  return Number.isNaN(n)
    ? { ok: false, error: "bad port" }
    : { ok: true, value: n };
}

Zorunlu İşleme

Değer iki daldan biri olabileceği için, önce ok değerini kontrol etmeden value değerini okuyamazsınız. Derleyici, türü yalnızca bu kontrolden sonra daraltır.

const r = parsePort("oops");
if (r.ok) console.log(r.value);
else console.log("failed:", r.error);

İstisnaların Hâlâ Bir Yeri Var

Gerçekten beklenmeyen ve kurtarılamayan başarısızlıklar (programcı hataları, belleğin tükenmesi) yine de istisna fırlatabilir. Değer olarak hatalar, ayrıştırma ve doğrulama gibi beklenen başarısızlıklarda öne çıkar.

Örtük Yerine Açık

Hataları döndürmek, başarısızlık yolunu tür içinde açık hale getirir, çağrı noktasında görünür kılar ve gizli bir throw kullanımından farklı olarak yanlışlıkla yok sayılmasını imkânsızlaştırır.

Sonuç ve Seçenek Türlerine Doğru

Bu etiketli başarı veya başarısızlık yapısı yeniden kullanılabilir bir Sonuç türüne, yokluk ile varlık arasındaki ayrım da bir Seçenek türüne genellenebilir; her ikisi de sıradaki bölümde ele alınır.

Hızlı Kontrol

Bu dersle ilgili hızlı bir kontrol.

Özet

Fırlatılan hatalar türler için görünmezdir: imzalar başarısızlığı gizler ve çağıranlar yakalamayı unutur. Başarısızlığı açık bir değer (etiketli bir başarı veya hata nesnesi) olarak döndürmek, başarısızlık yolunu tür içinde görünür ve yok sayılmasını imkânsız hale getirir; bu da Sonuç ve Seçenek türlerine götürür.

Sıkça Sorulan Sorular

“Hata Fırlatmanın Sorunu” dersi ücretsiz mi?

Evet — “Hata Fırlatmanın Sorunu” dersin tüm metni burada web'de ücretsiz olarak okunabilir. Etkileşimli olarak pratik yapmak (yerleşik kod editörü ve 7/24 yapay zeka koçu) ve TypeScript Academy kursunun geri kalanını açmak için CoddyKit PRO'ya yükselt. TypeScript Academy kursu toplamda 4 dersten oluşur.

“Hata Fırlatmanın Sorunu” dersinde ne öğreneceğim?

Özel durumların başarısızlığı tür sisteminden neden gizlediğini öğrenin. TypeScript Academy ile uygulamalı kodu tarayıcıda doğrudan çalıştırarak pratik yaparsın ve 7/24 yapay zeka koçu dersi çalışırken sorularını yanıtlar.

TypeScript Academy öğrenmeye başlamak için deneyim gerekli mi?

Önceden deneyim gerekmez. CoddyKit'te TypeScript Academy, başlangıçtan ileri seviyeye kadar yapılandırıldığı için buradan başlayabilir veya başından başlayıp kendi hızında ilerleme yapabilirsin. Bu, 4 dersinin 1. dersidir.

“Hata Fırlatmanın Sorunu” dersi ne kadar sürer?

Çoğu CoddyKit dersi yaklaşık 5–10 dakika sürer. Her biri kısa ve etkileşimli olduğu için sabit ilerleme yaparsın ve web ile uygulama arasında tam olarak bıraktığın yerden devam edebilirsin.

Bu TypeScript Academy dersinde kod yazıp çalıştırabilir miyim?

Evet. Her TypeScript Academy dersi yerleşik bir kod editörü içerir, bu sayede tarayıcıda gerçek kod yazıp çalıştırabilir ve anlık yapay zeka geri bildirimi alırsın — yerel kurulum gerekli değildir.

Bu kursun tüm dersleri

  1. Hata Fırlatmanın Sorunu
  2. Result Türlerini Modelleme
  3. Option ve Maybe Türleri
  4. Demiryolu Odaklı Programlama
← TypeScript Academy Sayfasına Dön