try, except, finally - Python Dersleri (Tutorials)
zzan·@elektroyazilim·
0.000 HBDtry, except, finally - Python Dersleri (Tutorials)
 Merhabalar Python programlama derslerinin bu bölümünde "hata yakalama" konusuna kaldığımız yerden devam edeceğiz. Bir önceki dersimizde _try except_ blok yapısından bahsetmiştik. Programlarımızda hata olabileceğini düşündüğümüz kod kısmını try bloğuna koyarken hata oluştuğunda yapmak istediklerimizi _except_ bloğu içerisine koyarız. Örneğin :  _except_ bloğunu sadece _except_ anahtar kelimesi ile oluşturabildiğimiz gibi _except_ anahta kelimesi ile beraber hata isimlerini de verebiliriz. Örneğin :  Hata ismini verdiğimizde _try_ bloğu içerisinde ismini verdiğimiz hata dışında bir hata oluşursa _except_ bloğuna geçmeyecektir. Böyle bir dezavantajı vardır. Ayrıca _except_ bloklarını çoklu hata için ayrı ayrı tanımlayabiliriz. Örneğin :  Örnekte olduğu gibi _try_ bloğunda _ValueError_ hatası olduğunda bu bloğa, _ZeroDivisionError_ hatası olduğunda da bu isimdeki bloğa geçmektedir. _try except_ yapısının bunların dışında da kullanımı bulunmaktadır. Mesela iki ayrı hata bloğunu tek except bloğu içerisinde birleştirebiliriz :  Böyle bir uygulamada _try_ bloğu içerisinde _ValueError_ veya _ZeroDivisionError_ hatalarından herhangi biri oluşursa sonrasındaki _except_ bloğuna girilecek ve ekrana "Hata!" yazılacaktır. ## try, except, finally blokları _try, except_ blokları, olası bir hata durumunda programın çakılmasını önlemektedir. Aynı zamanda kullanıcıya hata ile alakalı da bilgi verme imkanı tanımaktadır. Bu iki bloğa ek olarak tanımlanan _finally_ bloğu ise hata olması veya olmaması durumunda mutlaka çalışacaktır. Mesela dosya işlemleri yapan bir uygulama düşünelim. Dosya okuma ya da yazma işlemlerinde hata olsun olmasın o dosyanın kapatılması gerekiyordur. Böylesi bir durum için _finally_ bloğunu kullanabiliriz. Dosya kapama komutlarını bu blok içerisine yerleştiririz. Genel yapısı aşağıdaki gibidir :  Bu uygulama üzerinden gidelim. İlk olarak hata almayacak şekilde değerler girerek kodu çalıştıralım. Çıktımız aşağıdaki gibidir :  Şimdi de hatalı bir sayı girelim :  Görüldüğü gibi her iki durumda da _finally_ bloğu çalıştı. Şimdilik bu kadar. Umarım faydalı bir çalışma olmuştur. Teşekkürler.  Kaynak belirtilmeyen görseller bana aittir. The pictures without source in the post is belong to me
👍 maonx, anomaly, laissez-faire, lucky-robin, awesome-gadgets, abandi, mojo4you, natur-pur, steem-fund, best-strategy, sudefteri, neokuduk, literaturk, oxiecuador, cocukgelisimi, rasit, maveraunnehr, online-24-7, soteyapanbot, elektroyazilim, etasarim, iskenderk, tahirozgen, yusufyusuf, apix, kabasakal, mozer, team, sbtr, steinhammer, ikiturk, yazilim, etkinlik, steemitli, discordtr, alequandro, indirim, itiraf, tartisma, beyazli, kirmizili, yesilli, dergi, kuzeyli, guneyli, dogulu, batili, roportaj, sinanbayrak, bos1234, hots, opo9, gotmu, dasa, nextcol, peterpetrelli, ikiliseyir, siyahli, bro-rando, bloggingforbeans, faustofraser, bethalea, profitvote, minnowvotes, oceanwhale, oceansbot, crabbot, dailyhouston, joeparys, alex2016, steemyoda, luckyvotes, kehuanmi, windlassed, interagent, reeducated, quenselite, isovanillic, whalecreator, contestcoin,