حالت آفلاین — محتوا از حافظهٔ کش نمایش داده می‌شود
آموزش برنامه‌نویسی با پایتون؛ قسمت دوم: حل مسئله

مدیریت خطا در پایتون با try، except و finally

۵. مدیریت خطا و بررسی ورودی در پایتون · 0٪

گاهی دادهٔ نامعتبر طبیعی هست: کاربر به جای عدد واژه می‌نویسه یا مخرج صفر می‌شه. این موارد قابل مدیریت‌اند. گرفتن همهٔ خطاها با except: می‌تونه اشتباه برنامه‌نویسی رو پنهان کند. فقط خطایی رو بگیر که انتظار داری و می‌دانی چطور به اون پاسخ بدهی.

def divide_text(a, b):
    try:
        numerator = int(a)
        denominator = int(b)
        answer = numerator / denominator
    except ValueError:
        return "عدد صحیح لازم است"
    except ZeroDivisionError:
        return "مخرج صفر است"
    else:
        return answer

def require_grade(grade):
    if grade < 0 or grade > 20:
        raise ValueError("نمره باید بین صفر و بیست باشد")
    return grade

print(divide_text("8", "2"))
print(divide_text("x", "2"))
print(divide_text("8", "0"))
print(require_grade(20))

تبدیل متن نامعتبر ValueError و تقسیم بر صفر ZeroDivisionError می‌ده. else فقط وقتی اجرا می‌شه که try بدون خطا تمام شده باشه.

finally چه موفق شویم و چه خطا رخ دهد، هنگام خروج از ساختار اجرا می‌شه؛ معمولاً برای کار نهایی و کارهایی مثل بستن فایل بازشده هست. return داخل finally ممکن هست پاسخ یا خطای قبلی رو بپوشاند؛ این کار رو نکن. در تمرین بعد ترتیب این مسیرها رو مشاهده می‌کنیم.

با raise می‌تونیم قانون خودمان رو اعلام کنیم. require_grade برای عدد خارج بازه ValueError می‌سازه و برای مقدار معتبر همون عدد رو برمی‌گردونه. تصمیم نهایی دربارهٔ پاسخ به خطا بر عهدهٔ بخشی که تابع رو صدا زده هست. خطای برنامه‌نویسی رو با صفر جعلی پنهان نکن.

فعالیت شما

خطاهای دقیق و مسیرهای try/except/else/finally رو بشناس.

مطالعهٔ این گام برای همه آزاد است

برای پاسخ‌دادن، بررسی پاسخ، ثبت پیشرفت و استفاده از دستیار باید شرایط شرکت در فعالیت‌ها را داشته باشید.

برای انجام فعالیت وارد شوید

برای انجام فعالیت‌ها ابتدا این دوره‌های پیش‌نیاز را تکمیل کنید: