Exceptions(Hatalar) - Python Dersleri (Tutorials)

in #zzan5 years ago

object.jpg

Merhabalar

Python programlama derslerinin bu bölümünde yeni bir konuya geçeceğiz. Python'da hata kavramını ve hangi durumlarda ne gibi hatalar alabileceğimizi göreceğiz.

Python programlarını yazarken bazen farkında olmadan hatalar yapabiliriz: Tanımlamadığımız bir değişkeni kullanmaya çalışabilir veya olmayacak aritmetik bir işlemi hesaplatmaya çalışabiliriz... Bu gibi veya daha başka durumlar Python'da hatalara yol açabilir.

Hatta bazı durumlarda hataların ortaya çıkabileceği kod kısımlarını önceden tahmin edebiliriz. Bu hataları da programımızda yakalayabiliriz.

Örnek vermek gerekirse kullanıcıdan bir sayı girmesini istediniz ama kullanıcının bir harf girmesi durumunda oluşabilecek hatayı öngörebiliriz.

Şimdi bu hataları gözden geçirelim:

  • Kullanıcı tanımlamadığı bir değişkeni kullanmak isterse oluşabilecek durum aşağıdaki gibidir :

mesaj adında daha önce herhangi bir değişken tanımlanmamasına rağmen print() fonksiyonuyla ekrana yazdırılmaya çalışılmış. Tabi

NameError : name 'mesaj' is not defined

hatası aldık. mesaj değişkeninin tanımlanmadığını söylüyor.

  • Kullanıcıdan bir sayı girmesini beklerken kullanıcının farklı değerler girmesi sonucu oluşabilecek hata ise aşağıdaki gibidir :

Kullanıcıdan bir sayı girmesini istedik ancak kullanıcı beklemediğimiz bir değer girdi. Girilen değeri int() metodu integer sayıya çeviremediği için ValueError hatası aldık.

ValueError: invalid literal for int() with base 10: 'abc12'

Hatada int() metodu için geçersiz literal girildiğini aslında 10luk tabanda sayı girilmesi gerektiğini ifade ediyor. Kullanıcının girdiği ifadede sayı dışında da değerler olduğu için int() metodu bu değeri sayıya çeviremediğinden böylesi bir hata aldık.

  • Matematik dersindeki tanımsız ifadelerin yapılmaya çalışılması da hata oluşmasına sebep olur.

Görüldüğü gibi sıfıra bölme hatası aldık. Hatanın hani satırda gerçekleştiğini de göstermektedir.

  • Bazen de syntax'ten kaynaklı hatalar olabilir. print() fonksiyonunu yanlış kullandığımızı farz edersek, aşağıdaki gibi bir hata alırız :

SyntaxError hatası aldık. Hatayı almamızın sebebi, print() fonksiyonu içerisinde yazılacak olan karakterlerin çift tırnak dışında verilmesidir.

Bunlar gibi daha yüzlerce hata ile karşılaşabilirsiniz. Python'daki sınıflandırılmış hataları, Python'un kendi dökümantasyonundan bulabiliriz :

https://docs.python.org/3/library/exceptions.html

Sitenin en alt kısmına gittiğinizde aşağıya doğru uzayan hiyerarşik bir hata listesi bulunmaktadır :

Python'daki hatalar bu şekilde. Bir sonraki derste ise bu hataları nasıl yakalayacağımızı göreceğiz.

Şimdilik bu kadar.

Umarım faydalı bir çalışma olmuştur.

Teşekkürler.

yesilayrca.png

Kaynak belirtilmeyen görseller bana aittir. The pictures without source in the post is belong to me

Sort:  

Congratulations @elektroyazilim! You have completed the following achievement on the Steem blockchain and have been rewarded with new badge(s) :

You distributed more than 1000 upvotes. Your next target is to reach 1250 upvotes.

You can view your badges on your Steem Board and compare to others on the Steem Ranking
If you no longer want to receive notifications, reply to this comment with the word STOP

To support your work, I also upvoted your post!

You can upvote this notification to help all Steem users. Learn how here!

You got a 97.37% upvote from @minnowvotes courtesy of @elektroyazilim!

You got a 50.00% upvote from @whalepromobot courtesy of @elektroyazilim!

You got a 41.25% upvote from @joeparys! Thank you for your support of our services. To continue your support, please follow and delegate Steem power to @joeparys for daily steem and steem dollar payouts!

The force is with you! You got a 30.32% upvote from @steemyoda courtesy of @elektroyazilim!

You got a 95.55% upvote from @luckyvotes courtesy of @elektroyazilim!

You got a 29.41% upvote from @whalecreator courtesy of @elektroyazilim! Delegate your Steem Power to earn 100% payouts.

You got a 22.22% upvote from @redlambo courtesy of @elektroyazilim! Make sure to use tag #redlambo to be considered for the curation post!

Coin Marketplace

STEEM 0.27
TRX 0.11
JST 0.030
BTC 71353.04
ETH 3819.08
USDT 1.00
SBD 3.51