İçindekiler
Bir istisna oluşturulduğunda, onu halledebilmek bizim görevimizdir, bu şekilde programımız bir eylemi gerçekleştirebilecek, mesaj gönderebilecek, kullanıcı tarafından girilen parametrenin düzeltilmesini isteyebilecek, kısacası birçok olasılık .İstisnaları Yakalamak
Daha önce de belirttiğimiz gibi bir istisna gördüğümüzde önemli olan onu bu şekilde yakalayabilmektir bu durum oluştuğunda programın ne yapması gerektiğine karar verebiliriz, bunun için komutları kullanacağız. deneyin / hariç. Yukarıdakileri göstermek için çok basit bir bölme programını analiz edeceğiz, çünkü bir sayıyı 0'a bölemeyeceğimizi bildiğimiz için bu bir istisna oluşturacaktır.
Kodumuzu oluşturmaya başlayalım, bunu herhangi bir metin düzenleyicide yapabileceğimizi ve dosyayı komut satırımızda veya konsolumuzda çalıştırabilmemiz için .py uzantılı olarak kaydetmemiz gerektiğini unutmayın.
x = input ('İlk sayıyı girin:') y = input ('İkinci sayıyı girin:') print x / y [/ size] [size = 4]
Bu, kullanıcı ikinci argüman olarak 0 değerini girene kadar oldukça düzgün çalışacak, bu programın çalışmasının aşağıdaki görüntüsünde görebileceğimiz gibi bu bir istisna oluşturacaktır:
kullanarak bunu önleyebiliriz. dene / hariç Bu bölümün başında gördüğümüz düzeltilmiş kodumuza bakalım:
try: x = input ('İlk sayıyı girin:') y = input ('İkinci sayıyı girin:') print x / y ZeroDivision hatası hariç: print "İkinci sayı sıfır olamaz!"
Bu davayı bu şekilde ele almanın yolu oldukça temiz, her şeye rağmen basit bir ifadeyle de söylenebilir. Eğer bu, değerinin Y 0 yeterli bir çözüm olmaz, ancak programımıza daha fazla bölüm eklersek daha fazla koşula ihtiyacımız olur, bunun yerine bu şekilde oluşturulan olası istisnanın yalnızca tek bir işleyicisine ihtiyacımız olur.
Birden fazla istisna yakala
Üzerinde çalıştığımız bölüm örneğinden devam ederek, 0 yerine başka bir şey girersek ne olacağını görelim:
Resimde bir metin girildiğini ve yalnızca türün bir istisnasını bekleyen işleyicimiz olduğunu görebiliriz. SıfırBölüm hatası yeni oluşturulan istisna ile ne yapacağını bilmediğinden düzgün işleme yapamadı.
Yeni istisnayı yakalamak için sadece yeni bir blok ekleyeceğiz hariç istisnayı idare edebilmek için TipHata bir sayının bir metne bölünmesiyle oluşturulur.
Düzeltilmiş kodumuza bakalım:
try: x = input ('İlk sayıyı giriniz:') y = input ('İkinci sayıyı giriniz:') print x / y ZeroDivision hatası hariç: print "İkinci sayı sıfır olamaz!" TypeError hariç: "Bu bir sayı değildi, değil mi?"
Eğer koşul cümlelerini kullanmayı seçmiş olsaydık Eğer, bu görev, programımızı daha az okunabilir hale getirmenin yanı sıra, bize çok daha fazla kod satırı alacaktı.
Aynı blokta iki istisna yakalamak
İhtiyacımız olan tek bir blokta birkaç istisna yakalamaksa hariç yapmamız gereken bunları bir parantez içindeki bildirime eklemek, daha iyi anlamak için kodu görelim:
[/ size] try: x = input ('İlk sayıyı giriniz:') y = input ('İkinci sayıyı giriniz:') print x / y ZeroDivision hatası hariç: print "İkinci sayı sıfır olamaz!" TypeError hariç: [/ size] [size = 4] print "Bu bir sayı değildi, değil mi?"
Gördüğümüz gibi, ne olursa olsun, 0 girilse de, sayı dışında bir şey girilse de uygulama bize aynı mesajı göndermeye devam edecek.Bu Eğitimi beğendiniz ve yardım ettiniz mi?Yazara olumlu puan vermek için bu düğmeye basarak yazarı ödüllendirebilirsiniz.