TypeScript Academy · Ders

Türlendirilmiş Hata Sınıfları ve Hiyerarşileri

Ayırt edilebilir türlerle özel hata sınıfları oluşturun

1. ders / 413 adım

Türlendirilmiş Hata Sınıfları ve Hiyerarşileri, 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.

Hoş Geldiniz

TypeScript'teki özel hata sınıfları, güvenli ve yapılandırılmış işleme için hatalara bir tür hiyerarşisi kazandırır.

Error'ı Genişletme

statusCode içeren temel bir AppError sınıfı oluşturun.
class AppError extends Error {
  constructor(public message: string, public statusCode = 500) {
    super(message);
    this.name = 'AppError';
  }
}

Hata Hiyerarşisi

Belirli hata türleri için türleri belirtilmiş alt sınıflar oluşturun.
class NotFoundError extends AppError {
  constructor(resource: string) { super(`${resource} not found`, 404); }
}
class ValidationError extends AppError {
  constructor(public fields: string[]) { super('Validation failed', 400); }
}

instanceof Kullanımı

catch bloklarında hata türlerini daraltmak için instanceof kullanın.
try { doSomething(); }
catch (err) {
  if (err instanceof NotFoundError) res.status(404).json({ error: err.message });
  else if (err instanceof ValidationError) res.status(400).json({ fields: err.fields });
}

Ayrımlı Hata Birleşimi

Tür belirtilmiş hata işleme için ayrımlı bir birleşim türü kullanın.
type AppError =
  | { kind: 'not_found'; resource: string }
  | { kind: 'unauthorized' }
  | { kind: 'validation'; fields: string[] };

Hata Fabrikası İşlevleri

Her hata türü için fabrika işlevleri oluşturun.
const errors = {
  notFound: (r: string) => new NotFoundError(r),
  unauthorized: () => new AppError('Unauthorized', 401),
};

Hata Serileştirme

API yanıtları için hataları serileştirin.
function serializeError(err: AppError): Record<string, unknown> {
  return { error: err.message, code: err.statusCode, name: err.name };
}

this.name Ayarlama

Hataların günlüklerde doğru tanımlanması için this.name değerini her zaman hata sınıfının adı olarak ayarlayın.
class MyError extends Error {
  readonly name = 'MyError' as const;
  constructor(msg: string) { super(msg); }
}

Express'te Hata

Express hata işleyicilerinde türleri belirtilmiş özel hataları kullanın.
app.use((err: unknown, req: Request, res: Response, next: NextFunction) => {
  if (err instanceof AppError) {
    res.status(err.statusCode).json({ error: err.message });
  } else {
    res.status(500).json({ error: 'Internal error' });
  }
});

Hata Günlükleme Deseni

Gözlemlenebilirlik için hataları türleri ve iletileriyle günlüğe yazın.
function logError(err: unknown): void {
  if (err instanceof Error) console.error(`[${err.name}] ${err.message}`);
  else console.error('Unknown error:', err);
}

Hata Türlerini Sınama

İşlevlerin doğru hata türlerini fırlattığını sınayın.
test('throws NotFoundError for missing user', async () => {
  await expect(getUser(999)).rejects.toThrow(NotFoundError);
});

Hızlı Kontrol

Çalışma zamanında bir nesnenin bir sınıfın örneği olup olmadığını hangi TypeScript anahtar sözcüğü denetler?

Özet

Türleri Belirtilmiş Hata Sınıfları ve Hiyerarşileri: Bu konunun temel kavramlarını ve bunları gerçek TypeScript projelerinde nasıl uygulayacağınızı öğrendiniz.
Başlamak ücretsiz

Yapay zeka eğitmeniyle TypeScript öğren — ücretsiz

Tarayıcında gerçek kod yaz ve çalıştır, 7/24 yapay zeka eğitmeninden anında yardım al; web'de ya da uygulamada kaldığın yerden devam et.

Kurslar
101
Dersler
352

Sıkça Sorulan Sorular

“Türlendirilmiş Hata Sınıfları ve Hiyerarşileri” dersi ücretsiz mi?

Evet — “Türlendirilmiş Hata Sınıfları ve Hiyerarşileri” 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.

“Türlendirilmiş Hata Sınıfları ve Hiyerarşileri” dersinde ne öğreneceğim?

Ayırt edilebilir türlerle özel hata sınıfları oluşturun 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.

“Türlendirilmiş Hata Sınıfları ve Hiyerarşileri” 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. Türlendirilmiş Hata Sınıfları ve Hiyerarşileri
  2. Result Örüntüsü: Ok ve Err
  3. Yakalanan Hataları Daraltma (unknown ve Error)
  4. Eş Zamanlı TypeScript Kodunda Hata Yönetimi
← TypeScript Academy Sayfasına Dön