Hata yönetimi
- Dart kursu
- Başlangıç
- Ders 22/116
- 6 dk
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
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
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
try { throw Exception('Hata'); } ____ (e) { print('Yakalandı: $e'); }
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 |