3 Aralık 2011 Cumartesi

Hata Ayıklama(continue-else...finaly)

continue ifadesi üzerinde fazla durmadan sadece 1 örnek vererek geçeceğim.

while True:
x=input("Bir sayı giriniz: ")
if x=="çıkış":
break
if len(x)<5:
continue
print("En fazla 5 heneli bir sayı girebilirsiniz...")






bu programda amaç kullanıcıdan en fazla 5 haneli bir sayı almak.5 haneyi geçecek bir sayı yazarsa
bunu "En fazla 5 heneli bir sayı girebilirsiniz..." şeklinde uyarmak.Eğer 5 haneden daha az girerse
continue ifadesi ile programın başına geri döenere bizden tekrar yeni bir sayı girmemizi isteyecek.


else...finally...


else...finally... ifade try... except... ifadesinin bir bakıma devemı niteliğindedir.
Mesala bir bölme işlemini yapan program yazdığımızı varsayalım.Kullanıcı bu programda sayıda
girebilir diğer karakterlerdende girebilir.Bunu önlemek için except ValueError: ifadesini
kullnıyorduk.Ama kullanıcı paydayı 0 girdi diyelim o zaman ne olacak.Hangi sayı 0'a bölünür Ki?
Tabiki burada python kendi çapındaki hata mesajını ekrana yansıtacak.İşte bunun gibi 1.hatadan
sonraki hataları yakalamak için else...finally... ifadesini kullanıyoruz.Şunu sorabilirsinizi:
"try...except... aynı işi yapmıyor mu?" Bu soruya yanıt evet olacaktır.Ama eğer kodlamamızda
hataları gruplamak istersek else...finally... tercih edebiliriz.else...finally bir özelliğide
...finally kodundan önce herhangi bir hata verse bile bu koddan sonraki işlemleri
hiç hata vermemiş gibi işletmesidir.Şimdi bu yazdıklarımızı örenkle açıklayalım.

Örneğimiz bölme işleminin yapan program kodlamasıdır


try:
bölünen = int(input("bölünecek sayı: "))
bölen = int(input("bölen sayı: "))

except ValueError:
print("Bir Hata Oluştu!")

else:
try:
bölme=bölünen/bölen

except ZeroDivisionError:
print("Bir sayıyı 0'a bölemezsiniz!")
finally:
print(bölme)

Hiç yorum yok:

Yorum Gönder