🔸 بخش سوم
برای رفع و هندل کردن ارور ها ابتدا ما باید آنها رو به خوبی بشناسیم و بدونیم دلایل رخ دادن آنها چیست.
— UnboundLocalError
این ارور زمانی میتونه رخ بده که متغیر شما bound نشده یا اصطلاحا unbound هستش.
مثلا زمانی که در حال shadow زدن به یک متغیر global هستید.
یا اینکه از متغیر سطح local در متد یا تابع ای دیگر استفاده میکنید.
name = "Yasin"
def get_name():
print(name)
name = "ali"
print(name)
get_name()
UnboundLocalError: cannot access local variable 'name' where it is not associated with a value
— UnicodeError
هنگامی که پایتون با مشکلات رمزگذاری یا رمزگشایی unicode مواجه میشود این ارور رخ میدهد.
از سری دلایل رخ دادن این ارور:
— استفاده از روش های رمزگذاری که پشتیبانی نمیشوند
— توالی بایت های خراب یا ناقص
مثال:
unicode_str = b"\u1234\u5678\u90AB"
print(decoded_str.decode("ascii"))
UnicodeDecodeError: 'ascii' codec can't decode byte 0xe1 in position 0: ordinal not in range(128)
— ZeroDivisionError
وقتی بخواهیم عددی را بر صفر تقسیم کنیم پایتون این را نمایش میدهد.
مثال:
result = 5 / 0
ZeroDivisionError: division by zero
— MemoryError
اگر زمانی حافظه رم سیستم پر شود یا به اصطلاح تمام رم در حال استفاده باشد به این ارور برمیخورید.
در اکثر اوقات به این دلیل است که رم بدون آزاد شدن و به صورت مداوم درحال استفاده است.
برای مثال این کد سعی میکنه یک لیست با بیش از یک میلیارد عنصر درست کنه:
large_list = [0] * 1_000_000_000
— PermissionError
ارور دسترسی برای زمانی است که پایتون دسترسی لازم برای عملیات مورد نظر رو ندارد، مثل ساخت فایل یا حذف فایل.
این ارور همچنین میتواند در صورتی رخ دهد که یک فایل مورد استفاده پراسس دیگری باشد.
برای مثال این تکه کد سعی میکند یک فولدر در system32 در ویندوز بسازد که در حالت عادی و بدون داشتن دسترسی administrator ممکن نیست.
import os
os.mkdir(r"C:\Windows\System32\new_directory")
✅ اینها ارور های رایج پایتونی بودند و از حالا به بعد به سراغ نحوه هندل کردن این ارور ها میریم.
منبع:
betterstack 〽️
🔖 #Python, #پایتون
👤 Yasin
💎 Channel: @DevelopixPython