CodeBlanks Logo Icon CodeBlanks

Hata yönetimi

try/catch ile geçersiz girdileri güvenle yakalarsın.

try/catch ile hata yakalama

Bir hata oluştuğunda program çöker. try/catch ile hatayı yakalayıp programı çökmeden devam ettirebilirsin.

Yapı: try { ... riskli kod ... } catch (e) { ... hata durumunda ... }. e yakalanan hatayı taşır; print('Hata: $e') ile detayını görebilirsin.

Bu derste main içine bir try bloğu ekleyip içine throw Exception('Geçersiz girdi') yazacağız. catch bloğu hatayı yakalayıp mesaj yazdıracak.

Uygulama try/catch ekle

main içine bir try bloğu ekle. İçine throw Exception('Geçersiz girdi') yaz. Sonra catch (e) { print('Hata: $e'); } ile yakala.

Başlangıç kodu

main.dart
void main() {
  print('Hesap makinesi hazır');
  print(add(3, 4));
  print(subtract(10, 3));
  print(multiply(5, 6));
  print(divide(10, 4));
  // try/catch bloğunu ekle
}

int add(int a, int b) => a + b;
int subtract(int a, int b) => a - b;
int multiply(int a, int b) => a * b;
double divide(int a, int b) => a / b;

Örnek çözüm

main.dart
void main() {
  print('Hesap makinesi hazır');
  print(add(3, 4));
  print(subtract(10, 3));
  print(multiply(5, 6));
  print(divide(10, 4));
  try {
    throw Exception('Geçersiz girdi');
  } catch (e) {
    print('Hata: $e');
  }
}

int add(int a, int b) => a + b;
int subtract(int a, int b) => a - b;
int multiply(int a, int b) => a * b;
double divide(int a, int b) => a / b;

Beklenen çıktı

Hesap makinesi hazır
7
7
30
2.5
Hata: Exception: Geçersiz girdi

throw ve finally

throw ile bilinçli olarak hata fırlatırsın. Örneğin throw Exception('Sıfıra bölme');. Bu, program akışını durdurur ve uygun catch'e atlar.

finally bloğu ise hata olsa da olmasa da her zaman çalışır: try { ... } catch (e) { ... } finally { ... }. Kaynak temizliği için kullanılır.

Hesap makinesinde throw'u sıfıra bölme gibi geçersiz durumlarda kullanabilirsin. finally'i ise dosya kapama gibi işler için ileride göreceğiz.

Soru ve cevaplar

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

1 Hata yakalama

Soru
try { throw Exception('Hata'); } ____ (e) { print('Yakalandı: $e'); }
Cevap
try { throw Exception('Hata'); } catch (e) { print('Yakalandı: $e'); }

Açıklama: catch bloğu hatayı yakalar.

2 catch bloğu ne zaman çalışır?

  • Hata olduğunda Doğru cevap
  • try'dan önce
  • Her zaman
  • Asla

Açıklama: catch, try içinde hata fırlatıldığında çalışır.

3 Hata yönetimi kavramları

Kavram Anlamı
try Deneme bloğu
catch Yakalama
throw Fırlatma
finally Son her zaman

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