Programlama ile uğrastığımız sürece hatalar da bunun bir parçası olacaktır. Her zaman hatalarla karşılaşmaya devam edeceğiz. Aslında karşılaştığımız hatalar genellikle kullanıcıdan kaynaklanan hatalar olacak. Bunu bir örnek ile inceleyelim.
Böyle bir kod yazdığınız zaman bir sorun olmasını beklemeyebilirsiniz. Eğer kullanıcı istediğimiz gibi sadece sayı girerse bir sorun olmayacaktır. Fakat kullanıcının programımızı çalıştırıp sayı yerine biyoinformatik yazdığını düşünürsek şöyle bir hata ile karşılaşacaktır.
Gördüğünüz gibi aldığımız hata programın çalışmasını durdurdu. Yazdığınız programlarda kullanıcıların bu tarz hatalarla karşılaşması olası bir ihtimal. Çok uzun kodlar yazdığınızda arada bu tarz bir hata tüm programın çalışmasını durduracaktır ve hata mesajı verecektir. Verdiği karmaşık hata mesajlarını kullanıcıların anlamasını bekleyemeyiz. İşte bu tarz durumlarda neler yapabileceğimizi anlatmaya çalışacağım bu yazımda.
try... except...
Python'da hata ayıklamak için try... except... bloklarından yararlanılır. Hemen yukarıdaki örnek üzerinde bunu uygulayabiliriz. Normalde kodumuz sayı dışında bir şey girildiğinde hata veriyordu. Şimdi kodu try... except... kullanarak tekrar yazıyorum.
Burada, hata vereceğini bildiğimiz kodları bir try... bloğu
içine aldık. Ardından bir except... bloğu açarak, ne tür bir hata beklediğimizi
belirttik. Buna göre, beklediğimiz hata türü ValueError. Son olarak da hata
durumunda kullanıcıya göstereceğimiz mesajı yazdık. Artık kullanıcılarımız sayı
yerine harfe basarsa programımız çökmeyecek, aksine çalışmaya devam edecektir.
Dikkat ederseniz print “Tesekkurler. Hoscakalin!” satırı her koşulda ekrana
basılıyor. Yani kullanıcı doğru olarak sayı da girse, yanlışlıkla sayı yerine
harf de girse programımımız yapması gereken işlemleri tamamlayıp yoluna devam
edebiliyor.
Burada en önemli kısım hangi hatayı beklediğinizi bilmektir. Hangi hatayı aldığınıza aşağıdaki kırmızı satırdan bakabilirsiniz. Bu hatayı except... bloğunda kullanıyoruz.
pass Deyimi
pass kelimesi İngilizce’de “geçmek” anlamına gelir. Bu deyimin Python programlama dilinde de bu hemen hemen bu anlama gelir. Bu deyimi Pyhon’da “görmezden gel, hiçbir şey yapma” anlamında kullanacağız. Mesela bir hata ile karşılaşan programınızın hiçbir şey yapmadan yoluna devam etmesini isterseniz bu deyimi kullanabilirsiniz.
Böylece programınız ValueError ile karşılaştığında görmezden gelerek yoluna devam edecek, böylece programda ters giden bir şey olduğu anlaşılmayacaktır. Yazdığınız programlarda bunun iyi bir şey mi yoksa kötü bir şey mi olduğuna programcı olarak sizin karar vermeniz gerekiyor.
Yukarıda anlatılan durumların dışında, pass deyimini kodlarınız henüz taslak aşamasında olduğu zaman da kullanabilirsiniz. Örneğin, diyelim ki bir kod yazıyorsunuz. Programın gidişatına göre, bir noktada yapmanız gereken bir işlem var, ama henüz ne yapacağınıza karar vermediniz. Böyle bir durumda pass deyiminden yararlanabilirsiniz. Mesela birtakım if deyimleri yazmayı düşünüyor olun.
Burada henüz else bloğunda ne yapılacağına karar vermemiş olduğunuz için, oraya bir pass koyarak durumu şimdilik geçiştiriyorsunuz. Program son haline gelene kadar oraya bir şeyler yazmış olacağız.
Bu haftalık anlatmak istediklerim bu kadar. Yeni bir konuda görüşmek dileğiyle.
Bilgi paylaştıkça güzelleşir. Paylaşarak öğrenmek dileğiyle.
Osman
Hiç yorum yok:
Yorum Gönder