Pythonда ўз типларининг истисноларини ташлаш
Pythonдаги судурги истиснолар ҳар ҳил вазиятларда бизнинг ҳамма эҳтиёжларимизни қондириш учун етарли бўлмайди. Шу сабабли Pythonда ўзимизнинг истисно типларимизни яратиш имконияти мавжуд.
Истисно яратиш учун, ООПнинг махсус синфини
class калит сўзи ёрдамида эълон қилиш керак.
Унг томонида истисно номи, номдан кейин эса
тегишли қавс ичида истисно тури ёзилади:
class Истисно(истисно тури):
pass
Келгила, жуда узун рўйхатларни ушлаш учун ўзимизнинг
ToBigLength синфимизни яратайлик. Ушбу синфнинг
думалоқ қавсларида у қайси истисно турини ушлашини
кўрсатамиз. Бу Exception истисноси бўлсин.
Синф таркибида ҳозирча pass ни ёзишимиз мумкин:
class ToBigLength(Exception):
pass
Янги яратилган истиснонинг ишлашини текшириб кўрайлик.
Бунинг учун try-except конструкциясини ёзамиз,
ва истинсомизни махсус raise буйруғи ёрдамида ташлаймиз:
try:
raise ToBigLength
except ToBigLength:
print('error: list is too big')
Код бажарилганидан сўнг чиқади:
'error: list is too big'
Манфий сонни ушлаш учун истисно яратинг.
Нолни ушлаш учун истисно яратинг.