Sobes.tech
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до каталардын иштетүүнүн ийкемдүү жана күчтүү механизмин камсыз кылат, ал ишенимдүү жана каталарга туруштук берүүчү программаларды түзүүгө мүмкүндүк берет.