Bir deyim ya da ifade sözdizimsel olarak doğru olsa da yürütülmek istendiğinde
bir hataya sebep olabilir. İcra sırasında meydana gelen hatalara istisna denir.
İstisnaları nasıl ele alabileceğinizi yakında öğreneceksiniz. Çoğu istisnalar
programlar tarafından ele alınmaz ve aşağıdakiler gibi hata mesajları ile
sonuçlanırlar:
>>> 10 * (1/0)
Traceback (most recent call last):
File "<stdin>", line 1, in ?
ZeroDivisionError: integer division or modulo
>>> 4 + spam*3
Traceback (most recent call last):
File "<stdin>", line 1, in ?
NameError: spam
>>> '2' + 2
Traceback (most recent call last):
File "<stdin>", line 1, in ?
TypeError: illegal argument type for built-in operation
Hata mesajının son satırı sorunun ne olduğunu belirtir. İstisnaların
farklı türleri vardır ve istisnanın türü hata mesajının bir bölümü olarak
yazdırılır. Örneklerdeki istisna türleri: ZeroDivisionError,
NameError ve TypeError. İstisna türü
olarak yazdırılan dizge meydana gelen istisnanın yerleşik ismidir.
Bu bütün yerleşik istisnalar için geçerlidir; ancak kullanıcı tanımlı
istisnalar için böyle olmayabilir. Standart istisna isimleri yerleşik
belirteçlerdir; ayrılmış anahtar kelimeler değil.
Satırın devamı istisna türüne bağlı ayrıntılardan oluşur ve anlamı
istisna türüne bağlıdır.
Hata mesajının baş kısmında istisnanın meydana geldiği yer yığın dökümü
şeklinde görülür. Bu genellikle istisnanın gerçekleştiği noktaya gelene
kadar işletilen kaynak kodu şeklinde olur; ancak standart girdiden
okunan satırlar gösterilmez.
Yerleşik istisnalar ve bunların anlamları için Python ile gelen
belgelerden yararlanılabilir.