Try Catch Nedir?
Yayın: · Son güncelleme:
Try Catch Nedir? Kısaca
Try catch, hata çıkarabilecek kodu try bloğunda çalıştırıp bir istisna oluştuğunda catch bloğunda yakalayan hata yönetimi yapısıdır. Böylece program çökmek yerine hatayı kontrollü biçimde ele alır.

Try catch nedir?
Try catch, "şunu dene, olmazsa şunu yap" diyen bir kod yapısıdır. Try bloğuna hata çıkarabilecek işlemi, catch bloğuna ise hata olursa çalışacak kodu yazarsınız. Örneğin bir dosyayı açmayı denersiniz; dosya yoksa program çökmek yerine "Dosya bulunamadı" mesajı gösterir.
Yapı JavaScript, Java ve C# gibi dillerde try-catch adıyla bilinir. Python'da aynı işi try ve except anahtar kelimeleri görür, mantık ise tamamen aynıdır ve diller arasında geçiş yapan biri bu yapıyı hemen tanır.
Nasıl yazılır?
Python'da kullanıcıdan alınan değeri sayıya çeviren basit bir örnek düşünelim. try: bloğunda yas = int(girdi) satırı çalışır. Kullanıcı "otuz" yazarsa dönüşüm başarısız olur ve except ValueError: bloğundaki "Lütfen rakamla yazın" mesajı gösterilir.
Yapının isteğe bağlı üçüncü parçası finally bloğudur. Her durumda çalışır. Açılan bir dosyayı ya da veritabanı bağlantısını kapatmak gibi temizlik işleri için idealdir.
JavaScript'te ise yazım try { ... } catch (hata) { ... } finally { ... } biçimindedir ve hata değişkeni oluşan istisnanın ayrıntılarını taşır.
Sık yapılan hatalar
En yaygın yanlış, tüm kodu tek bir dev try bloğuna koyup her hatayı aynı şekilde yakalamaktır. Bu durumda hangi satırın sorun çıkardığını anlamak zorlaşır. Try bloğunu yalnızca hata beklenen satırlarla sınırlı tutun.
Belirli hata türlerini yakalamak da önemlidir. Python'da yalnız except: yazmak, programı durdurmak için basılan Ctrl+C'yi bile yakalayabilir. Bunun yerine except ValueError gibi beklediğiniz türü açıkça yazın ve catch bloğunda hatayı en azından loglayın.
Sıkça Sorulan Sorular
Try catch performansı düşürür mü?
Çoğu dilde hata oluşmadığı sürece try bloğunun maliyeti çok düşüktür. Asıl maliyet bir istisna fırlatılıp yakalandığında doğar; bu yüzden istisnalar normal akışı yönetmek için değil, gerçekten beklenmedik durumlar için kullanılmalıdır.
Finally bloğu ne zaman çalışır?
Finally bloğu, try bloğu başarıyla bitse de bir hata yakalansa da her durumda en sonda çalışır. Dosya, bağlantı gibi kaynakları kapatmak için kullanılır.