Mereka bukan hal yang sama.
Sebuah bug adalah perilaku yang tidak diinginkan dari sebuah software: perangkat lunak tidak melakukan apa yang seharusnya dilakukan. Bug dapat hidup di semua tingkat pengembangan perangkat lunak, mulai dari kesalahan ketik biasa hingga kesalahan logis hingga spesifikasi fungsional yang tidak memadai.
Sebuah pengecualian , sebaliknya, dapat mengacu ke kondisi yang tidak biasa dari sebuah program, menyimpang dari operasi normal, atau, lebih khusus, dengan konstruksi bahasa yang digunakan untuk sinyal dan menangani kondisi seperti itu.
Fakta bahwa pengecualian terjadi dapat menjadi tanda bug, tetapi seringkali tidak. Misalnya, aplikasi yang seharusnya mengunduh dokumen dari URL dan memprosesnya secara lokal mungkin mengeluarkan pengecualian ketika server jauh turun: aplikasi menyimpang dari operasi normal (tidak dapat mengunduh dan memproses dokumen), tetapi jika itu menangani pengecualian dengan benar dan pulih, maka tidak ada bug.
Sebaliknya, keberadaan bug tidak selalu memanifestasikan dirinya sebagai pengecualian. Aplikasi mungkin secara diam-diam membuang data yang Anda masukkan alih-alih menyimpannya di basis datanya; tidak terkecuali terlempar, tetapi masih berupa bug.