Eksepsi ada untuk memisahkan aliran program normal (apa program dirancang untuk melakukan) dari aliran penanganan kesalahan (bagaimana program berusaha untuk pulih dari situasi luar biasa).
Ini membuat kode lebih jelas dan mudah dipelihara.
Pertimbangkan dua sniplets kode:
try:
do1() # this is obvoiusly a normal
do2() # program flow
except:
oups() # this is exception handling code
Dibandingkan dengan yang ini:
if foo():
thing1() # is this part of normal program flow?
else:
thing2() # or maybe this one? Or both? When?
Tentu saja, penanganan pengecualian dapat digunakan untuk mencegah program mogok dengan:
try { // very bad code
my();
whole();
ugly();
application();
here();
} catch (Throwable t) {
// pretend it's ok
}
tetapi ini bukan alasan untuk pengecualian dalam bahasa pemrograman modern.
Anda juga dapat menggunakan whiledan breakbukannya iftetapi ini bukan untuk apa whiledan breakuntuk.