Python Hata Yƶnetimi: try, except, finally, raise
ā” Akıllı Ćzet
Python Hata yƶnetimi, programınızın Ƨƶkmek yerine ƧalıÅma zamanı hatalarına yanıt vermesini saÄlar. Burada try, except, finally ve raise yapılarının nasıl ƧalıÅtıÄını, hata durumlarının neden ƶnemli olduÄunu ve karÅılaÅacaÄınız yaygın yerleÅik hata türlerini ƶÄreneceksiniz.

İstisna İÅleme Nedir? Python?
İstisna, bir programın yürütülmesi sırasında meydana gelen bir hatadır. Ancak bir programı ƧalıÅtırırken Python programınızın Ƨƶkmesini ƶnlemek iƧin ele alınması gereken bir istisna oluÅturur. İƧinde Python dil, istisnalar hata durumunda otomatik olarak tetiklenir veya kodunuz tarafından tetiklenebilir ve durdurulabilir.
İstisna, olay meydana gelse de bu tür olayların nadiren gerƧekleÅtiÄini gƶsterir. Yƶntem istisnayı iÅleyemediÄinde, ƧaÄıran iÅlevine atılır. Sonunda, ana iÅlevden bir istisna atıldıÄında program aniden sonlandırılır.
Yaygın İstisna Ćrnekleri
- Sıfıra bölüm
- Mevcut olmayan bir dosyaya eriÅim.
- İki uyumsuz türün eklenmesi
- Bir dizinin var olmayan bir dizinine eriÅmeye ƧalıÅılıyor
- Tablonun baÄlantısı kesilen veritabanı sunucusundan kaldırılması.
- Mevcut tutardan fazlasının ATM'den Ƨekilmesi
Neden İstisnaları kullanmalısınız?
İstisnaları kullanmanın nedenleri Åunlardır: Python:
- İstisna iÅleme, hata iÅleme kodunu normal koddan ayırmanıza olanak tanır.
- Bir istisna, bir Python nesne bu bir hatayı temsil eder.
- Kod yorumlarında olduÄu gibi istisnalar da programın ne beklediÄini kendinize hatırlatmanıza yardımcı olur.
- Kodu netleÅtirir ve okunabilirliÄi artırır.
- Hata iÅleme tek bir yerde ve tek bir Åekilde gerƧekleÅtiÄinden sonuƧları harekete geƧirmenize olanak tanır.
- Bir istisna, hata mesajlarını iÅlemek iƧin uygun bir yƶntemdir.
- In Python, istisnayı yükseltme yƶntemini kullanarak programda bir istisna oluÅturabilirsiniz.
- Bir istisna oluÅturmak, geƧerli kod yürütmesini kırmanıza yardımcı olur ve istisnayı, iÅlenene kadar beklentiye geri dƶndürür.
- Kendilerini doÄrudan iÅleyemeyen bileÅenler iƧin istisnaların iÅlenmesi.
İstisna Kuralları
İÅte bazı temel kurallar Python istisna yƶnetimi:
- İstisnalar sınıf nesneleri olmalıdır
- Sınıf istisnaları için try deyimini, belirli bir sınıftan bahseden bir istisna cümlesiyle birlikte kullanabilirsiniz.
- Bir ifade veya ifade sƶzdizimsel olarak doÄru olsa bile, onu yürütmeye ƧalıÅıldıÄında bir hata gƶrüntüleyebilir.
- Yürütme sırasında bulunan hatalara istisna denir ve bunlar koÅulsuz olarak ƶlümcül deÄildir.
Python İstisna İÅleme Mekanizması
İstisna yƶnetimi aÅaÄıdaki 5 anahtar kelime tarafından yƶnetilir:
- denemek
- yakalamak
- nihayet
- atmak
Python AƧıklamayı Deneyin
Bir try deyimi, try anahtar sƶzcüÄünü, ardından iki nokta üst üste (:) ve istisnaların oluÅabileceÄi bir kod paketini iƧerir. Bir veya daha fazla cümlesi vardır.
Try ifadesinin yürütülmesi sırasında, eÄer hiƧbir istisna oluÅmazsa, yorumlayıcı sƶz konusu try ifadesi iƧin istisna iÅleyicilerini yok sayar.
Herhangi bir try paketinde istisna meydana gelmesi durumunda try paketi sona erer ve program kontrolü try paketini takip eden eÅleÅen except iÅleyicisine aktarılır.
Syntax:
try:
statement(s)
Yakalama beyanı
Catch blokları her seferinde bir argüman alır; bu da yakalaması muhtemel istisna türüdür. Bu argümanlar, belirli bir istisna türünden, her Åeyi kapsayan bir istisna kategorisine kadar deÄiÅebilir.
Catch bloÄu iƧin kurallar:
- catch anahtar sƶzcüÄünü kullanarak bir catch bloÄu tanımlayabilirsiniz.
- İstisnayı Yakala parametresi her zaman parantez iƧine alınır
- Her zaman blok tanıtıcılarını yakalayan istisna türünü temsil eder.
- İki {} küme parantezi arasına bir istisna iÅleme kodu yazılır.
- Tek bir try bloÄunun iƧine birden fazla catch bloÄu yerleÅtirebilirsiniz.
- Catch bloÄunu ancak try bloÄundan sonra kullanabilirsiniz.
- Tüm catch bloÄu alt sınıftan üst sınıfa doÄru sıralanmalıdır.
Ćrnek:
try } catch (ArrayIndexOutOfBoundsException e) { System.err.printin("Caught first " + e.getMessage()); } catch (IOException e) { System.err.printin("Caught second " + e.getMessage()); }
Sonunda AƧıklama Python
Son olarak blok, bir istisnanın atılıp atılmamasına bakılmaksızın her zaman yürütülür. final anahtar sƶzcüÄü, try-catch bloÄunu takip eden bir kod bloÄu oluÅturmanıza olanak tanır.
Son olarak madde isteÄe baÄlıdır. Her koÅulda uygulanması gereken temizleme eylemlerinin tanımlanması amaƧlanmaktadır.
try: raise KeyboardInterrupt finally: print 'welcome, world!' Output Welcome, world! KeyboardInterrupt
Son olarak, yan tümce try deyiminden önce yürütülür.
Açıklamayı Yükselt Python
Raise ifadesi, istisna nesnesini baÅlatan bir argümanı belirtir. Burada istisna adının ardından virgül gelir ve virgülden sonra gelen argümanın argümanı veya tuple'ı.
Sƶzdizimi:
raise [Exception [, args [, traceback]]]
Bu sƶzdiziminde argüman isteÄe baÄlıdır ve yürütme sırasında istisna argümanının deÄeri her zaman yok olur.
Ćrnek:
A Python istisna bir dize, sınıf, sayı veya nesne gibi herhangi bir deÄer olabilir. tarafından gündeme getirilen bu istisnaların ƧoÄu Python Ƨekirdek, sınıfın bir ƶrneÄi olan bir argümana sahip sınıflardır.
Hatırlatma Python Hatalar
| Hata Tipi | AƧıklama |
|---|---|
| Aritmetik Hata | ArithmeticError, tüm aritmetik istisnalar iƧin temel sınıf gƶrevi gƶrür. Aritmetik iÅlemlerdeki hatalar iƧin yükseltilir. |
| İƧe Aktarma Hatası | ImportError hatası, mevcut olmayan bir modülü iƧe aktarmaya ƧalıÅtıÄınızda ortaya Ƨıkar. Bu tür bir istisna, bir modülü iƧe aktarmaya ƧalıÅtıÄınızda meydana gelir.ping Modül adında hata var veya modül standart yolda bulunmuyor. |
| Dizin Hatası | Aralık dıÅında olan bir diziye baÅvurmaya ƧalıÅtıÄınızda bir IndexErroris ortaya Ƨıkar. |
| Anahtar Hatası | Sƶzlükte belirli bir anahtar bulunmadıÄında KeyError istisnası ortaya Ƨıkar. |
| İsim Hatası | Yerel veya genel ad alanında hiƧbir zaman bulunmayan bir ad kodda belirtildiÄinde bir NameError ortaya Ƨıkar. |
| DeÄer Hatası | Bir iÅlev veya yerleÅik iÅlem, doÄru türde olabilecek ancak uygun deÄere sahip olmayan bir baÄımsız deÄiÅken aldıÄında deÄer hatası ortaya Ƨıkar. |
| EOF hatası | Bu tür bir hata, yerleÅik iÅlevlerden biri (input() veya raw_input()) herhangi bir veri okumadan bir EOF koÅuluna ulaÅtıÄında ortaya Ƨıkar. |
| Sıfır Bƶlme Hatası | Sıfıra bƶlme veya modülasyon sırasında ortaya Ƨıkan bu tür hata, tüm sayısal türler iƧin gerƧekleÅir. |
| IOError- | Bu tür bir hata, bir giriÅ/ƧıkıŠiÅlemi baÅarısız olduÄunda ortaya Ƨıkar. |
| sƶzdizimi hatası | Bir hata olduÄunda ortaya Ƨıkan SyntaxErrors Python sƶzdizimi. |
| Girinti Hatası | Girinti doÄru Åekilde tanımlanmadıÄında ortaya Ƨıkan bu hata |
DiÄer Ćnemli Python İstisnalar
| Istisna | AƧıklama |
|---|---|
| Aritmetik İstisna | Sıfıra bƶlme gibi aritmetik hatalar. |
| ArraylndexOutOfBoundsException | Dizi dizini sınırların dıÅında. |
| ArrayStoreException | Atama, uyumsuz türdeki dizi ƶÄesini bulmanızda size yardımcı olur. |
| ClassCastException | GeƧersiz yayın |
| MlegalMonitorStateException | Kilidi aƧılmıŠbir iÅ parƧacıÄını beklemek gibi yasa dıÅı izleme iÅlemi. |
| MlegalStateException | Ortam veya uygulama yanlıŠdurumda. |
| ClassNotFoundException | Sınıf bulunamadı. |
| KlonDesteklenmeyen İstisna | Klonlanabilir arayüzü uygulamayan bir nesneyi klonlamaya ƧalıÅın. |
| YasadıÅı EriÅim İstisnası | Bir sınıfa eriÅim reddedildi. |
| Ćrnekleme İstisnası | Bir arayüz veya mutlak deÄerin nesnesini oluÅturmaya ƧalıÅtıÄınızda ortaya Ƨıkar.tract sınıfı. |
| KlonDesteklenmeyen İstisna | Arayüzü uygulamayan bir nesneyi klonlamaya ƧalıÅın. |
Hata ve İstisnalar
| Hata | İstisnalar |
|---|---|
| Tüm hatalar Python iÅaretlenmemiÅ türdür. | İstisnalar, hem iÅaretli hem de iÅaretsiz türü iƧerir. |
| ĆalıÅma zamanında derleyicinin bilmediÄi hatalar meydana gelir. | İstisnalar, try-catch blokları yardımıyla ele alınarak kurtarılabilir. |
| Hatalar ƧoÄunlukla uygulamanın ƧalıÅtıÄı ortamdan kaynaklanır. | Uygulamanın kendisi istisnalara neden olur. |
| Ćrnekler: Yetersiz Bellek Hatası |
Ćrnekler: İÅaretlenen İstisnalar, SQL istisnası, NullPointerException, vb. |
