TGViewer
| کانال توسعه‌دهندگان پایتون | | کانال توسعه‌دهندگان پایتون | @developixpython · 7.69K subscribers
Post #121 4.97K
🔹 ارور ها در پایتون
🔸 بخش اول

💠 در پست های قبلی - انواع ارور ها، بخش اول، بخش دوم، بخش سوم - با ارور هایی که در پایتون ممکنه باهاشون برخورد کنیم آشنا شدیم.
💠 حالا وقت اینه که از این مطالب استفاده کنیم تا برنامه های خودمون رو بهبود بدیم.

همونطور که مطلع هستید، مفسر زمانی که به ارور برخورد میکنه برنامه رو متوقف میکنه و process اجرایی ما از کار میوفته.

قطعا این یک معضل برای برنامه‌نویس هاست، اما پایتون هم مثل خیلی از زبان های دیگه برای این مشکل راه‌حلی ارائه داده.

این زبان با دو کلمه کلیدی try و except ساختاری رو برای ما فراهم کرده که بتونیم ارور ها رو مدیریت یا هندل کنیم.
ابتدا در بلوک try تکه خط‌ کدی رو که ممکنه به خطا بخوره رو مینویسیم و در بلوک هم except تکه کدی رو که میخوایم در صورت مواجه شدن به ارور اجرا بشه رو مینویسیم.

بریم چند تا مثال بزنیم تا با این ساختار بیشتر آشنا بشیم.

❔ مسئله:
— برنامه ای بنویسید که از کاربر عددی را دریافت کند و یکی کمتر از آن عدد را چاپ کند و در آخر هم یک bye در پایان برنامه print کند.

روش یک - بدون استفاده از try except:
number = int(input("enter a number: ")
print(number - 1)
print("bye")


این کد تا زمانی صحیح و بدون مشکل کار میکنه که کاربر همیشه به عنوان ورودی یک عدد صحیح وارد کنه.
حالا اگر کاربر از کارکتری استفاده کنه که کلاس int انتظارش رو نداره، برنامه با ارور مواجه میشه و برنامه متوقف میشه. پس ما bye رو در خروجی نمیبینم:
ValueError: invalid literal for int() with base 10


روش دوم - با استفاده از try except:
try:
    number = int(input("enter a number: "))

except:
    print("the entry isn't an integer")

print("bye")


اما اینجا به محض مواجهه با ارور، برنامه پیام مناسبی به کاربر نشون میده و به کارش ادامه میده، بدون اینکه process رو متوقف کنه.


همچنین میتونید صرفا یک یا چند خطای مورد انتظار و معین رو برای تکه کد خودتون درنظر بگیرید. به این صورت که در بلوک except نوع ارور رو مینویسید و مفسر صرفا نسبت به این ارور(ها) واکنش نشون میده.

❔ مسئله:
— برنامه ای بنویسید که از کاربر عددی صحیح را دریافت کند و حاصل تقسیم 1000 بر آن را بنویسد.
جواب:
try:
    number = int(input("enter a number: "))
print(1e3 / number)

except ValueError:
    print("the entry isn't an integer")


در این تکه کد فقط اگر به ValueError برخورد کنیم برنامه واکنش‌نشون میده و درغیر اینصورت برنامه با ارور مواجه، و در نتیجه متوقف میشه.

حالا اگه بخوایم ZeroDivisionError رو هم هندل کنیم چی؟ کاری نداره، اونم اضافه میکنیم:
try:
    number = int(input("enter a number: "))
print(1e3 / number)

except ValueError:
    print("the entry isn't an integer")

except ZeroDivisionError:
print("entry cannot be zero")


تا اینجا با try و except آشنا شدیم. در پست های بعدی بیشتر در مورد error handling صحبت میکنیم و با این موضوع بیشتر آشنا میشیم.

🔖 #Python, #پایتون

👤 Yasin

💎 Channel: @DevelopixPython
  • 👍 10
  • ❤ 5
  • 🔥 3
More from @developixpython
  1. Sep 30, 2026💠 نسخه جدید کتابخانه FastAPI منتشر شده است 🔸 ارتقا از نسخه 0.141.1 به 0.142.2 🔖 #fastap…
  2. Sep 8, 2026آرگومان پیش‌فرض لیست؛ باگ خفن ولی بی‌سر‌و‌صدا 😅 خیلی‌ها (حتی حرفه‌ای‌ها) یه زمانی این سوت…
  3. Sep 6, 2026🔥 پروژه: مهارت‌های تحقیق آکادمیک با Claude Code اگر برای پروژه‌های پایتونی مقاله، مستندات…
  4. Aug 24, 2026خیلی وقت‌ها با باگ‌های عجیب روبه‌رو می‌شویم که فقط به خاطر یک فاصلهٔ اضافی یا خط‌جدید ته ر…
  5. Aug 12, 2026🔥 پروژه: ‏DSPy فریم‌ورک برنامه‌نویسی LLM DSPy یه فریم‌ورک پایتونی از آزمایشگاه NLP اس…
  6. Aug 9, 2026مدیریت درست resource مثل فایل، connection دیتابیس یا lock، کلی باگ و Memory Leak بالقوه را…
Threads Profile ViewerView any public Threads profile without an account.Open ThreadLook →Writing with AI? Make it sound human.Metric37 rewrites AI drafts so they read naturally. Free AI detector, 1,500 words free.Try Metric37 →