CodeBlanks Logo Icon CodeBlanks

Özet - İleri hata yönetimi

hiyerarşi, Result ve async error'ı birleştirerek sağlam bir servis yazarsın.

Özet - İleri hata yönetimi

Bu grupta ileri hata yönetimini öğrendin: Exception hiyerarşisi, Error vs Exception, Stack trace, Result pattern ve async hata yakalama.

Özet: Exception'ı extends ederek özel istisnalar; Error'ı yakalamama; catch (e, s) ile StackTrace; sealed Result ile tip güvenli hatalar; async/await ile Future hataları.

Doğru araç: beklenen koşullar için Exception (veya Result), programcı hataları için Error düzeltmesi.

Birleşik örnek

Tüm kavramları birleştiren bir fonksiyon: AppException extends Exception, Future<int> fetchCount() async { throw AppException('zaman aşımı'); }.

Çağıran: try { await fetchCount(); } on AppException catch (e) { print(e.message); }. Burada async hata + özel istisna + message erişimi bir arada.

Bu kalıp gerçek uygulamalarda sık görülür: ağ çağrısı özel istisna fırlatır, async/await ile yakalanır.

Uygulama Birleşik hata yönetimi

AppException sınıfı tanımla (extends Exception, final String message + yapıcı). Future<int> fetchCount() async { throw AppException('zaman aşımı'); } fonksiyonunu yaz. main'i async yap: try { await fetchCount(); } on AppException catch (e) { print(e.message); } ile çağır.

Başlangıç kodu

main.dart
// AppException sınıfını tanımla

// fetchCount fonksiyonunu yaz

void main() async {
  // fetchCount'u çağır, AppException yakala
}

Örnek çözüm

main.dart
class AppException extends Exception {
  final String message;
  AppException(this.message);
}

Future<int> fetchCount() async {
  throw AppException('zaman aşımı');
}

void main() async {
  try {
    await fetchCount();
  } on AppException catch (e) {
    print(e.message);
  }
}

Beklenen çıktı

zaman aşımı

Soru ve cevaplar

Dersin sorularını cevaplarıyla birlikte inceleyebilirsin. Kendini denemek istersen dersi interaktif olarak çöz.

1 Hangisi Result pattern'ın parçasıdır?

  • Error ve Exception
  • try ve catch
  • throw ve rethrow
  • Success ve Failure Doğru cevap

Açıklama: Result Success ve Failure alt sınıflarından oluşur.

2 Hata yönetimi özet

Kavram Anlamı
extends Exception Özel istisna
catch (e, s) StackTrace
Result<T> Tip güvenli
await + catch Async hata

3 rethrow anahtarı

Soru
try { risky(); } catch (e) { ____; }
Cevap
try { risky(); } catch (e) { rethrow; }

Açıklama: rethrow yakalanan hatayı tekrar fırlatır.

Orta seviye bölümündeki tüm dersler