CodeBlanks Logo Icon CodeBlanks

Error vs Exception

Error ve Exception farkını öğrenirsin.

Error vs Exception

Dart'ta iki tür sorun vardır: Error ve Exception. Karıştırılmamaları gerekir; doğru ayrım sağlam hata yönetiminin temelidir.

Error (ör. StateError, RangeError) programcının hatasıdır; kurtarılamaz ve yakalanmamalı. Kodu düzeltmen gerekir.

Exception (ör. FormatException, TimeoutException) çalışma zamanı koşuludur; kurtarılabilir ve try/catch ile yakalanır.

Error'ı yakalama

Bir Error'ı try/catch ile yakalamak genelde yanlış bir uygulamadır. Error, kodunda düzeltmen gereken bir hatadır; yakalamak hatayı gizler.

Bunun yerine Exception'ı yakala: try { ... } on Exception catch (e) { ... }. Bu, beklenen çalışma zamanı koşullarını ele alır.

Programında Error fırlatıyorsa, kaynağı düzelt; yakalamaya çalışma.

Uygulama FormatException yakala

int parseAge(String s) => int.parse(s); fonksiyonunu yaz. main içinde parseAge('abc') çağır; on FormatException catch (e) ile yakala ve print('geçersiz yaş') yazdır.

Başlangıç kodu

main.dart
// parseAge fonksiyonunu tanımla

void main() {
  // parseAge('abc') çağır, FormatException yakala
}

Örnek çözüm

main.dart
int parseAge(String s) => int.parse(s);

void main() {
  try {
    parseAge('abc');
  } on FormatException catch (e) {
    print('geçersiz yaş');
  }
}

Beklenen çıktı

geçersiz yaş

Soru ve cevaplar

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

1 NetworkError sınıfı

Soru
class NetworkError extends ____ { final String host; NetworkError(this.host); }
Cevap
class NetworkError extends Error { final String host; NetworkError(this.host); }

Açıklama: NetworkError bir Error alt sınıfıdır.

2 Hangisi Error alt sınıfıdır?

  • FormatException
  • TimeoutException
  • FileSystemException
  • StateError Doğru cevap

Açıklama: StateError extends Error. Diğerleri Exception alt sınıfıdır.

3 Error vs Exception karşılaştırma

Kavram Anlamı
Error Programcı hatası
Exception Çalışma zamanı koşulu
StateError Error alt sınıfı
FormatException Exception alt sınıfı

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