İçeriğe geç
parazade

Çalışma Zamanı Hatası Nedir?

İngilizce: Runtime Error

Yayın: · Son güncelleme:

Çalışma Zamanı Hatası Nedir? Kısaca

Çalışma zamanı hatası (runtime error), kod başarıyla derlenip başlatıldıktan sonra program çalışırken ortaya çıkan hatadır. Sıfıra bölme, olmayan bir dosyayı açma ya da boş bir değere erişme tipik örneklerdir.

Çalışma Zamanı Hatası nedir?
İçindekiler
  1. Çalışma zamanı hatası nedir?
  2. En sık görülen örnekler
  3. Nasıl önlenir?

Çalışma zamanı hatası nedir?

Çalışma zamanı hatası, programın yazımı kurallara uygun olduğu hâlde çalışma sırasında beklenmedik bir durumla karşılaşmasıdır. Derleyici ya da yorumlayıcı kodu kabul eder, sorun ancak belirli bir veri veya koşul oluştuğunda görülür. Hata yakalanmazsa program durur ya da çöker.

Sözdizimi hatası ile karıştırılmamalıdır. Unutulan bir parantez kod çalışmadan önce fark edilir; sıfıra bölme ise ancak bölen gerçekten sıfır olduğunda ortaya çıkar.

En sık görülen örnekler

Pratikte karşılaşılan çalışma zamanı hatalarının çoğu birkaç gruba girer:

  • Sıfıra bölme: Python'da ZeroDivisionError.
  • Boş değere erişme: Java'da NullPointerException, JavaScript'te "Cannot read properties of undefined".
  • Dizi sınırını aşma: 5 elemanlı bir listenin 10. elemanını istemek.
  • Kaynak bulunamaması: silinmiş bir dosyayı açmaya çalışmak.

Varsayımsal bir senaryo düşünün. Bir fatura uygulaması ortalama sepet tutarını toplam ciro bölü sipariş sayısı olarak hesaplıyor. Ay başında henüz sipariş yoksa bölen sıfır olur ve rapor ekranı hata verir.

Nasıl önlenir?

Çalışma zamanı hatalarını önlemenin yolu, kodun beklenmedik girdilere hazırlıklı olmasıdır. Yukarıdaki örnekte sipariş sayısı sıfırsa hesaplama yerine "veri yok" yazmak yeterlidir. Dış kaynaklara bağlı işlemler, örneğin dosya okuma veya API çağrısı, try-catch bloklarıyla sarılmalıdır.

Hata mesajındaki stack trace, sorunun hangi satırda oluştuğunu gösterir. Birim testlerine sıfır, boş liste ve çok büyük sayı gibi uç değerleri eklemek bu hataların çoğunu canlıya çıkmadan yakalar.

Sıkça Sorulan Sorular

Çalışma zamanı hatası programı her zaman kapatır mı?

Hayır. Hata try-catch gibi bir yapıyla yakalanırsa program kullanıcıya bir mesaj gösterip çalışmaya devam edebilir. Yakalanmayan hatalar ise genellikle programın durmasına yol açar.

Runtime error mesajı alan bir kullanıcı ne yapmalı?

Önce programı ve sistemi güncel sürüme yükseltmeyi deneyin. Hata sürerse mesajın ekran görüntüsünü ve hatanın hangi adımda çıktığını geliştiriciye ya da destek ekibine iletin.

İlgili terimler

RuntimeRuntime (çalışma zamanı), bir programın çalıştığı süreyi ve bu sırada programa bellek, kütüphane ve sistem erişimi sağlayan ortamı ifade eder. Node.js, JVM ve .NET runtime yaygın örneklerdir.Try CatchTry 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.İstisna(Exception)İstisna (exception), program çalışırken normal akışı bozan beklenmedik bir durumun programlama dilindeki temsilidir. Sıfıra bölme, olmayan bir dosyayı açma ya da geçersiz veri dönüşümü istisna fırlatır.Stack TraceStack trace, bir hata ya da istisna oluştuğunda programın o ana kadar hangi fonksiyonları hangi sırayla çağırdığını dosya ve satır numaralarıyla gösteren rapordur. Hatanın kaynağını bulmanın en hızlı yollarından biridir.Sözdizimi Hatası(Syntax Error)Sözdizimi hatası (syntax error), yazılan kodun programlama dilinin yazım kurallarına uymaması nedeniyle program çalışmadan önce ortaya çıkan hatadır. Eksik parantez, kapanmamış tırnak ve yanlış girinti en sık nedenlerdir.JavaJava, Sun Microsystems tarafından 1995'te yayımlanan, bugün Oracle tarafından geliştirilen, nesne yönelimli ve platformdan bağımsız bir programlama dilidir; kod Java Sanal Makinesi (JVM) üzerinde çalışır.Dizi(Array)Dizi (array), programlamada aynı isim altında birden fazla değeri sıralı biçimde saklayan veri yapısıdır. Her elemana sıra numarası olan indeks ile erişilir ve çoğu dilde indeks 0'dan başlar.Liste(List)Liste (list), programlamada birden fazla değeri sıralı tutan, eleman eklenip çıkarılabilen ve değiştirilebilen veri yapısıdır. Python'da köşeli parantezle yazılır: `meyveler = ["elma", "armut"]`.