Pythonда ўз типларининг истисноларини ташлаш

Pythonдаги судурги истиснолар ҳар ҳил вазиятларда бизнинг ҳамма эҳтиёжларимизни қондириш учун етарли бўлмайди. Шу сабабли Pythonда ўзимизнинг истисно типларимизни яратиш имконияти мавжуд.

Истисно яратиш учун, ООПнинг махсус синфини class калит сўзи ёрдамида эълон қилиш керак. Унг томонида истисно номи, номдан кейин эса тегишли қавс ичида истисно тури ёзилади:

pythonclass Истисно(истисно тури):
  pass

Келгила, жуда узун рўйхатларни ушлаш учун ўзимизнинг ToBigLength синфимизни яратайлик. Ушбу синфнинг думалоқ қавсларида у қайси истисно турини ушлашини кўрсатамиз. Бу Exception истисноси бўлсин. Синф таркибида ҳозирча pass ни ёзишимиз мумкин:

pythonclass ToBigLength(Exception):
  pass

Янги яратилган истиснонинг ишлашини текшириб кўрайлик. Бунинг учун try-except конструкциясини ёзамиз, ва истинсомизни махсус raise буйруғи ёрдамида ташлаймиз:

pythontry:
  raise ToBigLength
except ToBigLength:
  print('error: list is too big')

Код бажарилганидан сўнг чиқади:

python'error: list is too big'
Задание 1

Манфий сонни ушлаш учун истисно яратинг.

Задание 2

Нолни ушлаш учун истисно яратинг.