Junior
Python-ში გამონაკლისების დამუშავების რა მახასიათებლებია?
sobes.tech AI
პასუხი AI-სგან
Python-дағы қателер — бұл бағдарлама орындалу процесін бұзатын оқиғалар. Олар қателерді көрсететін объектілер.
Ерекшеліктер:
- Қателердің мұрагерлігі: Барлық кіріктірілген қателер кластар болып табылады және мұрагерлік негізінде ұйымдастырылған
BaseExceptionнегізгі кластан.# Мысал мұрагерлік # BaseException -> Exception -> StandardError -> ... # Exception -> ArithmeticError -> ZeroDivisionError try...except...блоктары: Қателерді өңдеудің негізгі механизмі.try: # Қосымша қате тудыруы мүмкін код result = 10 / 0 except ZeroDivisionError: # Нақты қателерді өңдеу print("Бөлінуде нөл!") except Exception as e: # Басқа қателерді өңдеу print(f"Қате орын алды: {e}")- Көп
exceptблоктары: Әртүрлі қателерді әртүрлі өңдеуге мүмкіндік береді.try: # Код value = int("abc") except ValueError: print("Қате форматтағы сан.") except TypeError: print("Қате деректер түрі.") elseблогы: Егерtryблогы қателерсіз аяқталса, орындалады.try: # Код result = 10 / 2 except ZeroDivisionError: print("Бөлінуде нөл!") else: print("Операция сәтті орындалды.")finallyблогы: Әрқашан орындалады, қателер болсын немесе жоқ.file = None try: file = open("myfile.txt", "r") # Файлды оқу except FileNotFoundError: print("Файл табылмады.") finally: if file: file.close() # Файлды кепілдендірілген түрде жабуraiseоператоры: Қателікті айқын шақыру үшін пайдаланылады.def divide(a, b): if b == 0: raise ZeroDivisionError("Нөлге бөлуге болмайды") return a / b try: divide(10, 0) except ZeroDivisionError as e: print(f"Қате: {e}")- Арнайы қателер: Өз кластарын құра аласыз, оларды
Exceptionнемесе басқа бар кластардан мұраға алуға болады.class CustomError(Exception): pass def process_data(data): if not data: raise CustomError("Деректер бос") try: process_data([]) except CustomError as e: print(f"Қате: {e}") - Қателерді өңдеу
withконтекст менеджері арқылы: Бұл ресурстармен жұмыс істеуді жеңілдетеді, оларды айқын жабу керек (мысалы, файлдар).try: with open("myfile.txt", "r") as file: # Файлмен жұмыс content = file.read() except FileNotFoundError: print("Файл табылмады.") # Файл автоматты түрде `with` блогынан шыққанда жабылады - Қателерді тізбектеу: Қате өңдеу кезінде алдыңғы қате туралы ақпарат сақталуы мүмкін (жеке немесе
raise Exception from another_exceptionпайдалану арқылы).
Бұл ерекшеліктер Python-да қателерді өңдеудің икемді және қуатты механизмін қамтамасыз етеді, ол сенімді әрі қателерге төзімді бағдарламалар жасауға мүмкіндік береді.