Burada farklı bir örnek deneyelim.
Diyelim ki basit bir toplam fonksiyonu oluşturuyorum.
Evet, Python'da zaten var olduğunu biliyorum, ama biz sadece kendimizinkini yaratacağız.
Bir ve iki numarayı alan basit bir tane.
Ve burada sadece bir numara artı iki numarayı döndüreceğiz.
Şimdi, eğer basitçe bir tane yaparsak.
Ve bazılarını da.
Ve programımızı ben yürüttüm.
Önce çıktısını alalım.
Koş'a tıklıyorum.
Bir ve iki alıyorum çünkü sadece iki dizeyi birbirine ekliyor.
Şimdi bunu yapalım ve Çalıştır'a tıklayalım.
Tür hatası alıyorum int değil string olmalı.
Peki öğrendiklerimize dayanarak bunu nasıl ele alacağız?
Buraya bir tri bloğu ekleyebilir ve bu fonksiyonu sarabiliriz.
Ya da bunu doğrudan fonksiyonumuzun içine yerleştirebiliriz.
Yani dene diyebilirim.
Bu bölüm.
Ve burada bir çıkış maddesi var.
Bu, herhangi bir hata alırsak belki de diyor.
Basacağız.
Bir sorun var.
Eğer bunu çalıştırırsam.
Bir sorun olduğunu anladım.
Ama sorun şu.
İstisnasız kabul ederek.
Bir programcı olarak bunu okuyorum ve aslında neyin yanlış gittiğini gerçekten bilmiyorum çünkü pek çok
şey olabilir.
Bu nedenle, bu hataları her zaman belirli bir istisnaya dayalı olarak yakalamak iyi bir uygulamadır.
Bu şekilde hatanın ne olduğunu bilirsiniz ve daha açıklayıcı olabilirsiniz.
Yani burada tip hatası diyebiliriz ve bu tip hatasına sadece lütfen sayı girin diyebiliriz.
Böylece bunu tekrar çalıştırırsam, lütfen sayıları girin.
Yani şimdi.
Tamam.
Benim hatam daha açıklayıcı.
Bunu düzeltmeli ve sayıları girdiğimden emin olmalıyım.
Harika.
Şimdi, hata işleme yaparken yaygın bir model, bu tür hata gibi bir şey yapmak ve ardından değişken gibi bir şey
yapmaktır.
Yani bizim durumumuzda istediğimiz değişken ne olursa olsun, sadece hata diyelim.
Bu yüzden diyorum ki, hey, eğer tür hatası yakalarsanız, hata mesajımızda hata kullanalım, böylece burada söyleyebilirim.
Artı hava.
Yani eğer çalıştırırsam ve burada bir dize yapalım, eğer çalıştırırsam.
Şuna bak.
Yazdırılan hatayı alıyorum.
Açıkça görebilmeniz için bunu biraz açmama izin verin.
Şuna bir bak.
Aslında bana istediğim havayı veriyor.
Böylece internette görebilirim.
Beş.
Bu satırda, bir tür hatası desteklenmeyen operant alıyorum ve neler olduğuna dair açıklayıcı bir hata alıyorum,
bu yüzden belki bunu çıktı mesajımda kullanabilirim.
Ama ya bunu kullanmak istemezsem ve koşarsam?
Tamam.
Her şey yeniden çalışıyor.
Eğer yaparsam.
Artı.
Buraya ve Çalıştır'a tıklıyorum.
Ve bu aslında zor, ancak burada yukarıdaki istisnanın işlenmesi sırasında diyor ki ben bunu yapıyorum.
Bir başka istisna daha meydana geldi.
Aman Tanrım.
Bir şeyi halletmeye çalışıyorum ve o hata içinde bir hata alıyorum.
Yani bu bazen zor olabilir.
Ancak bunun anlamı, burada elde ettiğimiz şeyin aslında bir hata nesnesi olduğudur.
Python'da yerleşik bir istisnadır.
Buraya benim yaptığım gibi ekleme yapamazsınız.
Bunun yerine, bir F dizesi kullanmak istiyoruz.
Bu yüzden f yapıyorum ve sonra hatayı buraya aktarıyorum.
Yani şimdi.
Eğer bunu çalıştırırsam.
Tekrar.
Lütfen numarayı giriniz.
Desteklenmeyen işlenen türü dört artı int ve str.
Yani aslında bu hata benim için mevcut.
Şimdi, bu hatayı yazdıracak olursam, nasıl göründüğüne bakalım.
Çalıştır'a tıklarsam.
Görüyorsunuz, bu havanın bize ulaşan kısmı.
Bu yüzden kullanıcılarınıza anlamlı hatalar vermek istiyorsanız çok ama çok kullanışlıdır.
Yapabileceğiniz bir başka ilginç şey de bu hataları bir araya getirmektir.
Diyelim ki bölme hatamız da sıfır.
Ve burada sadece "oops" diyeceğiz.
Örneğin, bir rakamını iki rakamına bölersek, önce bunu çalıştıralım.
Eğer bir bölü sıfır yaparsam ve bunu çalıştırırsam oops alıyorum.
Ayrıca birden fazla hatayı aynı şekilde ele alabilmem için çemberler de alıyorum.
Burada hava olarak da söyleyebilirim ve aslında havayı yazdırabilirim ve bunu çalıştırırsam.
Sıfıra bölme veya bir dize yaparsam.
Ve bunu çalıştır.
Diğer hata türünü alıyorum.
Dolayısıyla, farklı hataları aynı şekilde ele almak istiyorsanız, bu yine farklı hataları birleştirmek için gerçekten yararlıdır.
Peki ya gerçekten kendi hatalarımızı büyütmek istiyorsak?
Yani, kendi hatalarımızı belki de bu kabul bloğunun içine atmak istiyoruz.
Aslında hatanın belirli hata türleri için görüntülenmesini istiyorum.
Bunu nasıl yapabiliriz?
Bir sonraki videoda öğrenelim.