0Pricing
TypeScript Academy · Ders

Hata türleri (unknown), catch içinde daraltma

catch parametrelerinin türünü unknown olarak belirleyin; ardından güvenli hata işleme için instanceof/typeof veya özel koruyucularla daraltın.

Hata türleri (unknown), catch içinde daraltma, CoddyKit'te ücretsiz bir TypeScript Academy dersidir. Bu, 3 dersinin 2. 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 3 dersten oluşur.

Giriş

Amaç: Hataları unknown olarak yakalayıp güvenli biçimde daraltmak. Hata verilerini beklenmedik sonuçlar olmadan okumak için instanceof, typeof ve özel tür koruyucuları kullanacaksınız.

unknown + instanceof

unknown ile başlayın. instanceof Error ile türü daraltarak message, stack ve benzeri alanlara erişin.

async function boom(): Promise<void> { throw new Error("boom") }

async function run() {
  try {
    await boom();
  } catch (e: unknown) {
    if (e instanceof Error) {
      console.error("Handled:", e.message);
    } else {
      console.error("Non-Error thrown:", e);
    }
  }
}

run();

İlkel değerler için typeof

Bazı kodlar dizeler veya başka ilkel değerler fırlatır. Türü daraltmak ve durumu uygun biçimde ele almak için typeof kullanın.

function throwString() { throw "bad" }

try {
  throwString();
} catch (e: unknown) {
  if (typeof e === "string") {
    console.warn("string error:", e.toUpperCase());
  } else {
    console.warn("other error", e);
  }
}

Özel koruyucu

Çeşitli katmanlardan gelen “hata benzeri” yapıları tanımak için kullanıcı tanımlı bir tür koruyucusu oluşturun.

type ErrorLike = { message: string; code?: string };

function isErrorLike(e: unknown): e is ErrorLike {
  return !!e && typeof e === "object" && "message" in e;
}

try {
  throw { message: "oops", code: "E_BAD" };
} catch (e: unknown) {
  if (isErrorLike(e)) {
    console.error(e.message, e.code ?? "no-code");
  } else {
    console.error("unknown error", e);
  }
}

Güvenli günlük kaydı

Hata işlemeyi merkezileştirin. Küçük bir yardımcı, türü daraltıp güvenli biçimde günlüğe kaydeder ve günlük kaydının kendisinde oluşabilecek çökmeleri önler.

function logErrorSafe(e: unknown): void {
  if (e instanceof Error) {
    console.error("Error:", e.message);
  } else if (typeof e === "string") {
    console.error("Error(string):", e);
  } else {
    try {
      console.error("Error(obj):", JSON.stringify(e));
    } catch {
      console.error("Error(unknown)");
    }
  }
}

try { throw { oops: true } } catch (e: unknown) { logErrorSafe(e) }

İpuçları

İpuçları:

  • catch içinde unknown kullanmayı tercih edin.
  • instanceof, typeof veya koruyucularla türü daraltın.
  • Error olduğunu varsaymaktan kaçının—üçüncü taraf kodu her şeyi fırlatabilir.

Hata türü denetimi

Hızlı denetim: catch içinde neden unknown kullanmayı tercih etmelisiniz?

Özet

Özet: Hataları unknown olarak yakalayın, instanceof/typeof veya özel koruyucularla türü daraltın ve güvenli günlük kaydını merkezileştirin.

Sıkça Sorulan Sorular

“Hata türleri (unknown), catch içinde daraltma” dersi ücretsiz mi?

Evet — “Hata türleri (unknown), catch içinde daraltma” 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 3 dersten oluşur.

“Hata türleri (unknown), catch içinde daraltma” dersinde ne öğreneceğim?

catch parametrelerinin türünü unknown olarak belirleyin; ardından güvenli hata işleme için instanceof/typeof veya özel koruyucularla daraltın. 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, 3 dersinin 2. dersidir.

“Hata türleri (unknown), catch içinde daraltma” 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. Promise , async/await türleri
  2. Hata türleri (unknown), catch içinde daraltma
  3. Eşzamanlılık kalıpları (all/settled/race) türleri
← TypeScript Academy Sayfasına Dön