مدیریت خطا (Python Try...Except)
مدیریت هوشمند خطاها: کدی که نمیشکند (Try...Except) 🛡️⚠️
خطاها در برنامهنویسی اجتنابناپذیرند. یا اینترنت قطع میشود، یا فایل وجود ندارد، یا کاربر به جای عدد، متن وارد میکند. یک برنامهنویس خوب کسی نیست که خطا ندارد، بلکه کسی است که خطاها را پیشبینی و مدیریت میکند.
۱. انواع خطا در پایتون
- SyntaxError: اشتباه نویسی در کد (برنامه اصلاً اجرا نمیشود).
- Runtime Errors (Exceptions): خطا در زمان اجرا (مثلاً تقسیم بر صفر).
۲. ساختار چهارگانه Try
try:
print(x)
except NameError:
print("Variable x is not defined")
except:
print("Something else went wrong")
finally:
print("The cleanup is done")
توضیح بخشها:
else: زمانی اجرا میشود که هیچ خطایی در بخش try رخ ندهد.finally: مخصوص عملیات "پاکسازی" (Cleanup) است؛ مثل بستن فایلی که باز شده یا قطع اتصال به پایگاه داده.
۳. ایجاد خطا با Raise
گاهی بر اساس منطق تجاری برنامه، شما نیاز دارید عمداً خطا ایجاد کنید:
if x < 0:
raise Exception("Sorry, no numbers below zero")
except ValueError) به جای اینکه فقط بنویسید except. این کار باعث میشود خطاهای پیشبینی نشده (مثل خطای حافظه) نادیده گرفته نشوند.
except Exception as e میتوانید متن دقیق خطایی که پایتون صادر کرده را چاپ کنید تا بفهمید مشکل دقیقاً کجاست.
تمرینهای عملی
برای تثبیت یادگیری این درس تمرینهای زیر را حل کنید
یک بلوک try...except بنویسید که سعی کند متغیر z را چاپ کند. چون z تعریف نشده، در بخش except عبارت 'Error' را چاپ کنید.
try:
print(z)
except:
print('Error')
یک بلوک try...except بنویسید که سعی کند عدد 10 را بر 0 تقسیم کند و چون این کار خطا دارد (ZeroDivisionError)، در بخش except عبارت 'Cant divide by zero' را چاپ کند.
try:
x = 10 / 0
except:
print('Cant divide by zero')
آماده رفتن به درس بعدی هستید؟
این درس را به پایان رساندید و میتوانید به درس بعدی بروید.