Hata Nedir?
Programlama dillerinde bazı kodları geçersiz bir şekilde çalıştırdığımızda bir mesajla programın çalışması durdurulur ve bu mesaja hata veya istisna adı verilir. Bir programlama dilinde farklı nedenlerden dolayı belirli türde hatalar vardır. Bunlardan bazıları aşağıdaki gibidir:
İddia Hatası:
Bu tür hata, kodda iddia koşulları veya ifadeler başarısız olduğunda ortaya çıkar.
İçe Aktarma Hatası:
Bu hata, dosyadaki bazı modülleri içe aktardığımızda ve o modül mevcut olmadığında ortaya çıkar.
Dizin Hatası:
Herhangi bir dizi için indeksi aralığın dışında olduğunda ortaya çıkar.
Anahtar Hatası:
yıl ay
Bu hata Python'da sözlükte herhangi bir anahtar bulamadığımızda ortaya çıkar.
İsim Hatası:
Bu hata, yerel veya global kapsamda herhangi bir değişken bulamadığımız zaman ortaya çıkabilir.
Çalışma hatası:
Bu hata, hata herhangi bir türde kategorize edilemediğinde ortaya çıkacaktır.
Girinti Hatası:
Python kodunda yanlış girinti kullandığımızda IndentationError oluşacaktır.
Sistem hatası:
Dahili bir hata olduğunda yorumlayıcı tarafından SystemError hatası ortaya çıkar.
Unicode Hatası:
Unicode ile ilgili bir kodlama veya kod çözme hatası olduğunda UnicodeError ortaya çıkar.
Değer Hatası:
Bir fonksiyonda veri tipine göre doğru argümanı ilettiğimizde değer uygun olmadığında oluşan hataya ValueError adı verilir.
SıfırBölme Hatası:
Bildiğimiz gibi matematikte hiçbir sayıyı sıfıra bölemeyiz çünkü sonuç sonsuza eğilimlidir. Yani sıfıra bölme veya sıfıra modulo ile ilgili herhangi bir ifade yazdıysak ortaya çıkan hata ZeroDivisionError olacaktır.
EOFE hatası:
Bir dosyadan girdi almak için input() fonksiyonunu kullandığımızda ve dosyanın sonuna ulaştığımızda bu hata ortaya çıkacak ve dosyanın sonuna geldiğimizi gösterecek ve artık herhangi bir işlem alamıyoruz. dosyadan giriş yapın.
Bu makale esas olarak AttributeError'a adanmıştır.
AttributeError nedir?
Bu hata, öznitelik atamasında bir koşullandırma hatası olduğunda programda ortaya çıkar. Örneğin, bir tamsayı değişkenine bir değer atarsak ve bu değişkenden herhangi bir dize işlevini kullanmaya çalışırsak, bu AttributeError değerini yükseltir.
Python'da AttributeError sorununun nedenini aşağıdaki örneklerle anlayabiliriz:
Örnek 1:
Mümkün olmayan bir işlevi farklı bir veri türüne uyguladığımızda
a=15 a.append('javatpoint')
Çıktı:
Açıklama:
Yukarıdaki kodda bir adet tamsayı değişkenimiz var ve onu 15 değeriyle başlattık. Şimdi a değişkeni üzerinde apend fonksiyonunu kullanırsak bu durumda apend diye bir özniteliğin olmadığını söyleyen AttributeError sonucunu verecektir. tamsayı veri türünde.
Örnek2:
Özniteliğin yanlış yazılmasında AttributeError olasılığı vardır.
string = 'you will learn each coding tutorial from '.fst('Javatpoint') print(string)
Çıktı:
Açıklama:
Yukarıdaki kodda bir string niteliğimiz var ve fst niteliğini uyguluyoruz yani AttributeError olacak yani bu nitelik değişken için mevcut değil.
Örnek3:
Herhangi bir sınıf değişkeni için yanlış referans yapmaya çalışırsak AttributeError hatasıyla karşılaşabiliriz.
linux dizini nasıl yeniden adlandırılır
class Javatpoint(): def __init__(self): self.var1 = 'This is for JavatPoint' obj = Javatpoint() print(obj.var1) print(obj.var2)
Çıktı:
Açıklama:
Yukarıdaki kodda bir sınıfımız var ve var1 adında bir değişken var. Sınıfın nesnesini yaratıyoruz ve yanlışlıkla o sınıfın var olmayan yanlış değişkeni var2'ye referans veriyoruz, dolayısıyla kesinlikle bir AttributeError oluşacaktır.
Hatanın veya istisnanın üstesinden gelmenin çözümü:
Python'da veya herhangi bir programlama dilinde, try ve Except ifadelerini kullanarak istisna veya hata işlemeyi kullanabiliriz.
Örnek 4:
class Javatpoint(): def __init__(self): self.var1 = 'This is for javatpoint' obj = Javatpoint() try: print(obj.var1) print(obj.var2) except AttributeError: print('There is no such attribute')
Çıktı:
Açıklama:
Yukarıdaki kodda bir sınıfımız ve var1 adında bir değişkenimiz var. Try deyiminde var1 ve var2'ye referans vermeye çalışıyoruz. Var1'in referansını kaldırabileceğiz ve bunun için ifadeyi yazdıracağız, ancak var2'ye referans vermek için AttributeError'ı alacağız. Böylece program hariç bloğuna girecek ve sadece hata durumu için yazılan ifadeyi yazdıracağız.