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 while
dan break
bukannya if
tetapi ini bukan untuk apa while
dan break
untuk.