Programlamanın altın bir kuralı vardır. Program, ya doğru sonuçlar vermeli ya da hiçbir sonuç vermemeli. Çünkü yanlış sonuçlar, ciddi sorunlar yaratabilir. Program hatalarını üç gruba ayırabiliriz.
Sözdizimi yanlışları (syntax errors)
Bunlar programcının canını sıkabilirler, ama başkalarına zarar veremezler, çünkü derlenemezler, koşturulamazlar. Dolayısıyla yanlış sonuç vermeleri olanaksızdır. Bu gruptakiler tehlikesiz yanlışlardır.
Mantıksal yanlışlar (logical errors)
Programın sözdizimi doğrudur,derlenebilir, koşturulabilir. Ama yapılmak istenen işler için kullanılan deyimler yanlıştır. Yanlış işlemler, yanlış hesaplar yapar. Programın denenme aşamasında bu tür yanlışlar ortaya çıkmazsa, programın kullanılması ciddi sorunlar yaratabilir. Örneğin, bir bankada hesaplar arasında para akışını kaydeden bir program modülünün eksik veya fazla toplama yaptığını düşününüz. Kısa zamanda, üstesinden gelinmesi zor sorunlar yaratır. Bu tür yanlışlar, programcılıkta en tehlikeli sayılan yanlışlardır.
Koşma-zamanı yanlışları (run-time errors)
Program sözdizimi ya da mantıksal yanlış içermiyor, ama bazı nedenlerle koşamıyor olabilir. Örneğin, gerekli verileri bir giriş biriminden okuyamaması, yada verileri bir çıkış birimine gönderememesi, işlemlerde sıfıra bölme gibi olanaksız bir durumla karşılaşması, vb.
Aşağıdaki döküman ise işte bu Koşma-zamanı yanlışlarını ele almakta .