else:
print("Exception bo'lmadi.")
Natija:
$ python raising.py
Nimadir kiriting –> a
ShortInputException: Kiritilgan satr uzunligi — 1; minimum 3 uzunlik kutilgan edi
Bu qanday ishlaydi:
Bu yerda biz ShortInputException nomli o'zimizning exception turimizni xosil qildik. U ikkita xususiyatdan (maydon) tashkil topgan: length — kiritilgan satr uzunligini saqlash uchun, atleast — dastur kutgan minimal satr uzunligi.
except blokida biz ShortInputException klasini ko'rsatamiz u o'z navbatidaex o'zgaruvchisiga saqlanadi. ex o'zgaruvchisi esa tegishlik xatolik/exception ob'yektidan tashkil topgan. except bloki ichida length va atleastxususiyatlarini ishlatib foydalanuvchiga tegishli xabarni ko'rsatamiz.
try . . finally
Tasavvur qilaylik, dasturda fayldan o'qib olish amali bor va dastur oxirida shu fayl to'g'ri yopilishi kerak. Bunga finally blokini qo'llash bilan erishish mumkin.
Misol: (finally.py nomi bilan saqlang)
import time
try:
f = open('poem.txt')
while True: # Odatiy fayldan o'qish usuli
line = f.readline()
if len(line) == 0:
break
print(line, end='')
time.sleep(2) # Bir qancha vaqt kutish
except KeyboardInterrupt:
print("!! Siz fayldan o'qishni bekor qildingiz.")
finally:
f.close()
print('(Tozalash: Faylni yopish)')
Natija:
$ python finally.py
Dasturlash qiziqarli.
Agar ish zerikarli bo'lsa,
Unga quvnoq tus berish uchun –
^C!! Siz fayldan o'qishni bekor qildingiz.
(Tozalash: Faylni yopish)
Bu qanday ishlaydi:
Bu yerda biz oddiy fayldan o'qib olish amallarini bajaryapmiz. Dastur sekin ishlashi uchun har bir chop qilingan satrdan so'ng dastur 2 sekund uyquga ketadi (python judayam tez ishlaydi). Dasturni to'xtatish yoki bekor qilish uchun dastur bajarilishi jarayonida Ctrl + c bosing.
Kuzatgan bo'lsangiz KeyboardInterrupt istisnosi yuz berdi va dastur bajarilishdan to'xtadi. Ammo dastur bajarilishdan to'xtashidan oldin finally bloki bajarildi va o'qish uchun ochilgan fayl yopildi.
with operatori
Biror bir resursga try blokida murojaat qilib, so'ngra bu resursni finally blokida bo'shatib yuborish odatiy yo'l sifatida ko'riladi. Lekin bu amalni nisbatan qulayroq bajarish uchun with operatoridan foydalanish mumkin.
Misol: (using_with.py nomi bilan saqlang)
with open("poem.txt") as f:
for line in f:
print(line, end='')
Natija:
$ python using_with.py
Dasturlash qiziqarli.
Agar ish zerikarli bo'lsa,
Unga quvnoq tus berish uchun –
Pythonni ishlating!
Bu qanday ishlaydi:
Natija bundan oldingi misoldagi kabi bo'lishi kerak. Farqi shundaki, biz bu yerda open funksiyasini with operatori bilan ishlatyapmiz va shu bilan faylni avtomat yopishni with operatori zimmasiga yuklayapmiz.
poem.txt fayli teksti.
Dasturlash qiziqarli.
Agar ish zerikarli bo'lsa,
Unga quvnoq tus berish uchun –
Pythonni ishlating!
Do'stlaringiz bilan baham: |