Pythonда функцияда истиснолар билан ишлаш
Истисноларни функцияларда шартлар ёрдамида йўлга қўйиш жуда қулай.
Келинг, get_sum функциясини ясаймиз,
бу функция рўйхат элементларининг йиғиндисини
фақат рўйхат узунлиги 3 дан кичик ёки
тенг бўлганда чиқарсин. Акс ҳолда, бизнинг
ToBigLength истинѐмиз чиқарилсин:
def get_sum(lst):
if len(lst) <= 3:
return sum(lst)
else:
raise ToBigLength
Энди get_sum функциясига рўйхат
ўткамиз ва функцияни консолга чиқарамиз:
lst = [1, 2, 3, 4]
print(get_sum(lst)) # 6 ни чиқаради
Шунингдек, функцияларда бир нечта истисно
турларини ушлашни мослаш мумкин. Келинг,
янги бир ToSmallLength истисно синфини яратамиз:
class ToSmallLength(Exception):
pass
Энди функцияда шартни белгилаймиз, агар
рўйхат узунлиги нолга тенг бўлса, ToSmallLength
чиқарилсин. Агар бирон истисно ушланмаса,
рўйхатнинг барча элементларининг йиғиндиси чиқарилсин:
def get_sum(lst):
if len(lst) > 3:
raise ToBigLength
if len(lst) == 0:
raise ToSmallLength
else:
return sum(lst)
Қулайлик учун, функция параметрига ўтадиган
рўйхатни, функцияни ва унинг чақириғини
try блокига олиш мумкин. Икки истинѐмизни
эса except блокларида ушлаймиз:
try:
lst = [1, 2, 3]
res = get_sum(lst)
print(res)
except ToBigLength:
print('error 1')
except ToSmallLength:
print('error 2')
Функция яратинг, у параметр сифатида сон
қабул қилсин. Унда шартларни белгиланг,
агар сон манфий ёки нолга тенг бўлса,
мос истиснолар чиқарилсин. Акc ҳолда сон
3 га кўпайтирилсин.
Яратган функциянгизнинг ишлашини try-except
конструкцияси ёрдамида текширинг. Бу жараёнда
ўз истинѐларингизни ҳам ушланг.