Aynı şey değiller.
Bir hata , bir yazılım parçasının istenmeyen davranışıdır: yazılım yapması gerekeni yapmaz. Hatalar, düz eski yazım hatalarından mantıksal hatalara ve yetersiz işlevsel özelliklere kadar her türlü yazılım geliştirmede yaşayabilir.
Bunun aksine bir istisna , normal çalışmadan sapan bir programın olağandışı bir koşuluna veya daha spesifik olarak bu tür durumları belirtmek ve işlemek için kullanılan dil yapısına atıfta bulunabilir.
Bir istisnanın meydana gelmesi bir hatanın işareti olabilir, ancak genellikle değildir. Örneğin, bir URL'den belge indirmesi ve yerel olarak işlemesi gereken bir uygulama, uzak sunucu kapalı olduğunda bir istisna atabilir: uygulama normal işlemden sapıyor (belgeyi indirip işleyemiyor), ancak istisnayı düzgün şekilde işler ve kurtarır, o zaman hata yoktur.
Tersine, bir hatanın varlığı mutlaka bir istisna olarak kendini göstermez. Bir uygulama, veritabanında saklamak yerine girdiğiniz verileri sessizce atabilir; bir istisna atılmaz, ama yine de bir hatadır.