مدیریت خطا (try-except)

اصلاح شده

2026-04-18

برخی اوقات در جریان برنامه‌نویسی شرطی، نیاز داریم که به مفسر پایتون بگوئیم براساس ورودی‌های مختلف چگونه رفتار کند تا کد برنامه ما با خطا رویرو نشود. مثلاً در برنامه از کاربر خواستیم مقداری عددی وارد کند و بر اساس این مقدار، قرار است محاسبه‌ای انجام گیرد. حال فرض کنید کاربر مقداری غیر عددی وارد کرد و آنگاه این مقدار غیرعددی در یک فرمول محاسباتی وارد می‌شود! چه اتفاقی می‌افتد؟ مفسر پایتون اجرای برنامه را قطع می‌کند، چرا که نتوانسته است مقدار غیرعددی را در محاسبات وارد کند.

در این مواقع استفاده از ساختار try-except می‌تواند کمک‌کننده باشد:

inp = input('Enter Fahrenheit Temperature:')
try:
    fahr = float(inp)
    cel = (fahr - 32.0) * 5.0 / 9.0
    print(cel)
except:
    print('Please enter a number')

در اینجا پایتون کار را با اجرای دستور try آغاز می‌کند و اگر همه چیز خوب باشد، بلاک except را درنظر نمی‌گیرد. اما اگر استثنایی در بلاک try رخ داد، مفسر پایتون از بلاک try عبور می‌کند و به اجرای بلاک except می‌پردازد.