CodeBlanks Logo Icon CodeBlanks

throw

throw ile istisna fırlatmayı öğrenirsin.

throw

Kendi hatanı fırlatmak için throw kullanılır. Bir Exception nesnesi veya dize fırlatabilirsin. Örneğin throw Exception("negatif sayı");. Bu, bir koşul sağlanmadığında programı durdurmak ve çağıranı uyarmak için kullanılır.

Throw ile fırlatılan değer, yukarıdaki çağrı zincirinde bir catch bulana kadar yayılır. Bulamazsa program sonlanır. Tipik kullanım: işlev parametresini doğrula, geçersizse throw ile hata fırlat. Bu, çağıranın sorunu bilerek düzeltmesini sağlar. Throw, bir ifade olduğu için değer döndüren işlevlerde de kullanılabilir.

Koşullu throw

Throw çoğu zaman bir if ile birlikte kullanılır. Koşul sağlanmazsa hata fırlatılır. Örneğin bir yaş doğrulaması: if (yas < 0) throw ArgumentError("yaş negatif");. Bu, işlevin başında yapılan bir ön testtir.

Throw bir değer döndüren ifadedir; bu yüzden ternary işleçle de kullanılabilir. final sonuç = koşul ? deger : throw Exception("Geçersiz");. Bu, switch expression'da da geçerlidir; _ => throw Exception("bilinmiyor"). Throw'un ifade olması Dart 3 ile daha da güçlenmiştir; artık her yerde değer beklenen yerde kullanılabilir.

Uygulama Sıra sende: negatif yaş doğrula

main içinde final yas = -5; ata. Bir if ile yas < 0 olduğunda ArgumentError ile hata fırlat. Çağrıyı bir try bloğuna al ve catch (e) ile print(e) yazdır.

Başlangıç kodu

main.dart
void main() {
  // final yas = -5;
  // try içinde if ile negatifse ArgumentError fırlat
  // hata durumunda yazdır
}

Örnek çözüm

main.dart
void main() {
  try {
    final yas = -5;
    if (yas < 0) throw ArgumentError("yaş negatif");
  } catch (e) {
    print(e);
  }
}

Beklenen çıktı

Invalid argument(s): yaş negatif

Soru ve cevaplar

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

1 throw çağrısı

Soru
if (sayi < 0) {
  ____ Exception("negatif sayı");
}
Cevap
if (sayi < 0) {
  throw Exception("negatif sayı");
}

Açıklama: throw ile hata fırlatılır.

2 Bir koşul sağlanmadığında ne yapılır?

main.dart
if (yas < 0) {
  ____ ArgumentError("yaş negatif");
}
  • throw
  • return Doğru cevap
  • break
  • continue

Açıklama: throw ile hata fırlatılır.

3 throw eşleştir

Kavram Anlamı
throw hata fırlatır
Exception genel hata sınıfı
ArgumentError geçersiz parametre
if koşulu sınar

Başlangıç bölümündeki tüm dersler