پاسخ تمرین مدیریت خطا با try-except
در واقع، در این صفحه پاسخ تمرین مدیریت خطا با try-except را همراه با کد کامل و توضیح میبینید.
| نام دوره | دوره آموزش پایتون مقدماتی |
| درسنامه | مدیریت خطا با try-except-finally |
| تمرینها | مشاهده |
بنابراین این صفحه پاسخ تشریحی تمرینهای مدیریت خطا با try-except است. بهتر است ابتدا خودتان تمرینها را حل کنید و تنها بعد از آن این پاسخها را ببینید؛ در واقع مقایسهی راهحل خودتان با پاسخ اصلی بیشترین یادگیری را به همراه دارد. همچنین اگر جایی به خطا خوردید، ابتدا خودتان دلیلش را پیدا کنید و سپس توضیح را بخوانید.
پاسخ تمرین ۱ – ورودی عددی
try:
age = int(input("سن شما: "))
print("سال بعد:", age + 1)
except ValueError:
print("لطفاً فقط عدد وارد کنید")
همچنین، نام خطا را حتماً بنویسید. اگر فقط except بنویسید، هر خطای دیگری را هم میگیرید و بعداً نمیفهمید مشکل کجا بوده.
پاسخ تمرین ۲ – تقسیم
try:
a = int(input("عدد اول: "))
b = int(input("عدد دوم: "))
print(a / b)
except ValueError:
print("فقط عدد وارد کنید")
except ZeroDivisionError:
print("تقسیم بر صفر ممکن نیست")
به این ترتیب، هر نوع خطا پیام مخصوص خودش را دارد. این برای کاربر خیلی بهتر از یک پیام عمومی «خطایی رخ داد» است.
پاسخ تمرین ۳ – خواندن فایل
try:
with open("notes.txt", "r", encoding="utf-8") as file:
print(file.read())
except FileNotFoundError:
print("فایل پیدا نشد")
این الگو در هر برنامهای که با فایل کار میکند لازم است. فرض کنید فایل ممکن است نباشد، چون بالاخره روزی نیست.
پاسخ تمرین ۴ – finally
try:
print(10 / 0)
except ZeroDivisionError:
print("خطای تقسیم")
finally:
print("پایان عملیات")
خطای تقسیم
پایان عملیات
کاربرد واقعی finally بستن چیزهایی است که باز کردهاید: فایل، اتصال دیتابیس، اتصال شبکه.
پاسخ تمرین ۵ – کدام بد است؟
نسخهی الف بد است، به دو دلیل. اول اینکه except بدون نام، هر خطایی را میبلعد؛ حتی KeyboardInterrupt وقتی کاربر میخواهد برنامه را متوقف کند.
دوم اینکه pass هیچ نشانی باقی نمیگذارد. بعداً که برنامه اشتباه کار کند، هیچ سرنخی ندارید.
ضمناً بلوک try در نسخهی الف سه خط دارد. هرچه داخل try کمتر باشد، وقتی خطا گرفتید دقیقتر میدانید کجاست.
برای مطالعهی بیشتر میتوانید به مستندات رسمی پایتون سر بزنید.
جمعبندی پاسخ تمرین مدیریت خطا با try-except
در نهایت، هدف از این پاسخها فقط رساندن شما به جواب درست نیست؛ بلکه میخواهیم طرز فکر پشت هر راهحل را یاد بگیرید. بنابراین اگر پاسخی را نفهمیدید، بخش مربوط در درسنامه را دوباره مرور کنید و تمرین را از نو حل کنید. به این ترتیب مفهوم مدیریت خطا با try-except برایتان ماندگار میشود.