Özet - İleri hata yönetimi
- Dart kursu
- Orta seviye
- Ders 105/116
- 5 dk
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
// AppException sınıfını tanımla
// fetchCount fonksiyonunu yaz
void main() async {
// fetchCount'u çağır, AppException yakala
}Örnek çözüm
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ı
try { risky(); } catch (e) { ____; }
try { risky(); } catch (e) { rethrow; }
Açıklama: rethrow yakalanan hatayı tekrar fırlatır.