شماره خط کمک میکنه سریع به محل توقف برسی، اما همیشه همون خط علت اصلی نیست. ممکنه یک مقدار اشتباه چند خط بالاتر ساخته شده باشه و تازه هنگام تبدیل یا محاسبه، خطا آشکار بشه. پس شماره خط رو نقطه شروع بررسی بدون، نه حکم نهایی درباره علت. کدهای سؤال شماره خط واقعی دارن و خط خالی رو هم باید در شمارش حساب کنی.
در مثال، تبدیل متن نامعتبر به عدد روی خط دوم بدنه اتفاق میافته. مقدار قبلاً داخل متغیر قرار گرفته، ولی ساخت رشته بهخودیخود خطا نیست. اشتباه رایج تغییر نام متغیر یا حذف خط فراخوانیه؛ این کار شاید توقف رو دور بزنه، اما قرارداد ورودی رو روشن نمیکنه. در پیشبینی این درس نیازی به اصلاح کد نداری. مسیر اجرای عادی رو دنبال کن: تعریف تابع اجراشدن بدنه نیست؛ بدنه وقتی فراخوانی انجام میشه شروع میشه و اولین عمل نامعتبر اجرا رو متوقف میکنه.
✍️ مثال حلشده:
text = "سیب"
# int(text) در همین عمل تبدیل ValueError میدهد.
number = int("12")
assert number == 12
حالا نوبت توئه: کد سؤال دقیقاً چهار خط دارد: def convert(): در خط ۱، text = "bad" در خط ۲، return int(text) در خط ۳ و convert() در خط ۴. کدام خط داخل تابع محل ایجاد ValueError است؟ خط فراخوانی را از خط عملی که تبدیل را انجام میدهد جدا کن.
فعالیت شما
کد سؤال دقیقاً چهار خط دارد: def convert(): در خط ۱، text = "bad" در خط ۲، return int(text) در خط ۳ و convert() در خط ۴. کدام خط داخل تابع محل ایجاد ValueError است؟ خط فراخوانی را از خط عملی که تبدیل را انجام میدهد جدا کن.