رسیدگی به خطا و اشکال زدایی: نوشتن کد انعطاف پذیر

مقدمه
در برنامه نویسی ، خطاها اجتناب ناپذیر هستند. تسلط بر تکنیک های رسیدگی به خطای و اشکال زدایی برای نوشتن کد قوی ، مقاوم و قابل نگهداری بسیار مهم است. این ماژول انواع خطاها ، نحوه رسیدگی به استثنائات را با لطف و استراتژی های اشکال زدایی برای اطمینان از اجرای برنامه نرم و صاف را در بر می گیرد.
درس 1: درک انواع مختلف خطاها و اشکالات
مفهوم:
خطاها می توانند در حین توسعه بوجود بیایند و درک انواع آنها به شناسایی و حل و فصل کارآمد کمک می کند.
انواع خطاها:
- خطاهای نحوی: اشتباهات در ساختار کد که از اجرای آن جلوگیری می کند.
- خطاهای زمان اجرا: خطاهایی که در هنگام اجرای برنامه رخ می دهد ، مانند تقسیم صفر.
- خطاهای منطقی: کدی که اجرا می شود اما به دلیل منطق ناقص نتایج نادرست تولید می کند.
- خطاهای معنایی: تفسیر نادرست از نحوه عملکرد زبان ، منجر به رفتار غیر منتظره.
کد مثال:
# Syntax Error
print("Hello" # Missing closing parenthesis
# Runtime Error
result = 10 / 0 # Division by zero
# Logical Error
total = 5 * 5 # Incorrect logic for sum calculation
برای نکته: پیام های خطا را با دقت بررسی کنید تا منبع آنها را بفهمید و آنها را به طور کارآمد برطرف کنید.
درس 2: به جز امتحان کردن: رسیدگی به خطاهای با ظرافت در کد
مفهوم:
رسیدگی به استثناء تضمین می کند که برنامه شما می تواند با ظرافت به خطاهای غیر منتظره پاسخ دهد.
کد مثال:
try:
number = int(input("Enter a number: "))
result = 10 / number
print("Result:", result)
except ZeroDivisionError:
print("Cannot divide by zero!")
except ValueError:
print("Invalid input. Please enter a valid number.")
بهترین روشها:
- ابتدا استثنائات خاص را انجام دهید ، سپس موارد کلی.
- از ابتلا به استثنائات گسترده خودداری کنید مگر اینکه لازم باشد.
- بلوک های استثناء را مختصر و متمرکز نگه دارید.
برای نکته: برای ضبط جزئیات خطا برای تجزیه و تحلیل بعدی از ورود به سیستم در داخل بلوک های استثنا استفاده کنید.
درس 3: افزایش و صید استثناها: کنترل رفتار کد
مفهوم:
می توانید استثنائات را عمداً برای اجرای شرایط یا گرفتن خطاهای سفارشی مطرح کنید.
کد مثال:
def divide(a, b):
if b == 0:
raise ValueError("Denominator cannot be zero!")
return a / b
try:
print(divide(10, 0))
except ValueError as e:
print(e)
بهترین روشها:
- از استثنائات سفارشی برای سناریوهای خطای خاص استفاده کنید.
- استثنائات را با پیام های شفاف و توصیفی افزایش دهید.
- استثنائات را در سطوح مناسب در برنامه بگیرید.
برای نکته: استفاده کردن finally
برای اجرای کدی که باید بدون در نظر گرفتن اینکه آیا یک استثنا رخ داده است ، اجرا شود.
درس 4: تکنیک های اشکال زدایی: یافتن و رفع اشکالات مانند یک حرفه ای
مفهوم:
استراتژی های اشکال زدایی مؤثر به شناسایی و رفع سریعتر مشکلات در کد شما کمک می کند.
تکنیک های اشکال زدایی رایج:
- چاپ اشکال زدایی: برای ردیابی مقادیر متغیر از عبارات چاپی استفاده کنید.
- اشکال زدایی تعاملی: از ابزارهای IDE استفاده کنید تا از طریق خط کد به خط بروید.
- ورود به سیستم: برای ضبط وضعیت برنامه ، سیاهههای مربوطه را بنویسید.
- آزمایش واحد: تست ها را برای گرفتن اشکالات در اوایل چرخه توسعه بنویسید.
کد مثال برای ورود به سیستم:
import logging
logging.basicConfig(level=logging.INFO)
logging.info("Program started")
try:
result = 10 / 2
logging.info(f"Result: {result}")
except Exception as e:
logging.error(f"Error occurred: {e}")
برای نکته: از پیام های توصیفی و سطح ورود به سیستم مناسب استفاده کنید (اطلاعات ، اشکال زدایی ، خطا).
درس 5: خواندن و درک پیام های خطا
مفهوم:
پیام های خطا سرنخ های اساسی را برای تشخیص و رفع اشکالات به طور مؤثر ارائه می دهند.
مراحل تفسیر پیام های خطا:
-
نوع خطا: طبقه بندی را مشخص کنید (به عنوان مثال ،
ValueError
باTypeError
). - محتوای پیام: بفهمید چه اشتباهی رخ داده است.
- ردیابی: برای یافتن محل وقوع خطا ، پشته تماس را دنبال کنید.
- شماره خط: خط کد دقیق را ایجاد کنید که باعث مسئله می شود.
خروجی مثال:
Traceback (most recent call last):
File "main.py", line 3, in
print(10 / 0)
ZeroDivisionError: division by zero
برای نکته: برای تجزیه و تحلیل زنجیره های خطای پیچیده از ماژول Traceback Python استفاده کنید.
پایان
رسیدگی به خطای مؤثر و اشکال زدایی مهارت های اساسی برای نوشتن کد انعطاف پذیر است. درک نحوه گرفتن ، رسیدگی و اشکال زدایی خطاهای اشکال زدایی ، اجرای برنامه نرم و نرم تر و قابل پیش بینی تر را تضمین می کند.
غذای اصلی:
- بین خطاهای نحوی ، زمان اجرا ، منطقی و معنایی تمایز قائل شوید.
- استفاده کردن
try-except
بلوک ها برای رسیدگی به خطاها با لطف. - برای برقراری ارتباط با خطای روشن ، استثنائات سفارشی را افزایش دهید.
- از تکنیک های اشکال زدایی مانند ورود به سیستم و آزمایش واحد برای وضوح سریعتر مسئله استفاده کنید.
چه چیزی بعدی؟
در ماژول بعدی ، ما به عملیات ورودی/خروجی پرونده شیرجه می زنیم ، یاد می گیریم که چگونه از طریق خواندن و نوشتن به پرونده های کارآمد.
در TestAmplify به ما مراجعه کنید | X | اینستاگرام | وابسته به لینکدین