Skip to content
GitHub

Debugging — Error တွေကို ဖတ်ပြီး ဖြေရှင်းနည်း

Debugging ဆိုတာ Code ထဲမှာ ဘာမှားနေသလဲဆိုတာကို ရှာဖွေပြီး ပြင်ဆင်တဲ့ လုပ်ငန်းစဉ်ပါ။ Programmer တိုင်းဟာ Error တွေနဲ့ ကြုံတွေ့ရမြဲပါ — ကွာခြားသွားတာကတော့ Error ကို ဘယ်လောက်မြန်မြန်ဆန်ဆန် ဖြေရှင်းနိုင်သလဲ ဆိုတာပါပဲ။


Python Error Traceback ကို ဖတ်နည်း

Section titled “Python Error Traceback ကို ဖတ်နည်း”

Error တက်တဲ့အခါ Python က Traceback ဆိုတဲ့ Error Report ကို ပေးပါတယ်။ ဒါကို ကောင်းကောင်း ဖတ်တတ်ဖို့က အလွန် အရေးကြီးပါတယ်:

def calculate(a, b):
return a / b
result = calculate(10, 0)
print(result)
Traceback (most recent call last):
File "main.py", line 4, in <module>
result = calculate(10, 0)
File "main.py", line 2, in calculate
return a / b
ZeroDivisionError: division by zero

ဖတ်နည်း:

  1. အောက်ဆုံး Line ကို အရင်ဆုံး ကြည့်ပါ → ZeroDivisionError: division by zero ← ဒါက Error ရဲ့ အမျိုးအစားနဲ့ အကြောင်းရင်းပါ။
  2. File name နဲ့ Line number ကို ကြည့်ပါ → File "main.py", line 2 ← ဒါက Error တက်သွားတဲ့ နေရာပါ။
  3. Error ဖြစ်သွားတဲ့ Code ကို ကြည့်ပါ → return a / b ← ဒါက ပြဿနာ ဖြစ်သွားစေတဲ့ Code ပါ။

အဖြစ်များသော Error ၆ မျိုး

Section titled “အဖြစ်များသော Error ၆ မျိုး”

၁. SyntaxError — Code ရေးပုံ မှားနေသည်

Section titled “၁. SyntaxError — Code ရေးပုံ မှားနေသည်”
# Error
print("မင်္ဂလာပါ" # Closing ) မပါဘူး
# SyntaxError: '(' was never closed

ဖြေရှင်းနည်း: Error Line ကိုသွားပြီး Bracket, Quote, Colon (:), Indentation တွေကို သေချာ စစ်ဆေးပါ။


၂. NameError — Variable / Function မသိ

Section titled “၂. NameError — Variable / Function မသိ”
print(massage) # message ကို massage လို့ မှားရိုက်မိတယ်
# NameError: name 'massage' is not defined

ဖြေရှင်းနည်း: Variable နာမည် မှန်၊ မမှန် စစ်ဆေးပါ။ Python က Case-sensitive ဖြစ်တာကြောင့် Name နဲ့ name ဟာ မတူညီပါဘူး။


၃. TypeError — Data Type မကိုက်ညီ

Section titled “၃. TypeError — Data Type မကိုက်ညီ”
age = "20"
print(age + 1)
# TypeError: can only concatenate str (not "int") to str

ဖြေရှင်းနည်း: Data Type ကို စစ်ဆေးပြီး လိုအပ်ရင် int(age) / str(age) စသဖြင့် ပြောင်းလဲပေးပါ။


၄. IndexError — Index ကျော်နေသည်

Section titled “၄. IndexError — Index ကျော်နေသည်”
fruits = ["Apple", "Banana"]
print(fruits[5]) # Index 5 မရှိပါဘူး
# IndexError: list index out of range

ဖြေရှင်းနည်း: len(fruits) ကိုစစ်ဆေးပြီး Index ဟာ 0 ကနေ len-1 အထိပဲ ရှိကြောင်း သတိပြုပါ။


၅. KeyError — Dictionary Key မရှိ

Section titled “၅. KeyError — Dictionary Key မရှိ”
student = {"name": "Aung", "age": 20}
print(student["phone"])
# KeyError: 'phone'

ဖြေရှင်းနည်း: မသေချာရင် .get("phone", "မရှိ") လိုမျိုး သုံးပြီး Default Value ထည့်ပေးပါ။


၆. ValueError — Value ပုံစံ မှားနေသည်

Section titled “၆. ValueError — Value ပုံစံ မှားနေသည်”
age = int("hello")
# ValueError: invalid literal for int() with base 10: 'hello'

ဖြေရှင်းနည်း: User Input တွေဆိုရင် try/except ValueError နဲ့ သေချာ ထိန်းချုပ်ပေးပါ။


Section titled “Print Debugging — အမြန်ဆုံး Debugging နည်း”

Error က ရှင်းရှင်းလင်းလင်း မရှိရင် Code ရဲ့ သံသယရှိတဲ့ နေရာတွေမှာ print() ထည့်ပြီး Variable တန်ဖိုးတွေကို စစ်ဆေးတာဟာ Beginner Programmer တွေအတွက် အကောင်းဆုံးနဲ့ အလွယ်ဆုံး သုံးနိုင်တဲ့ နည်းလမ်းပါ:

def calculate_total(prices):
print(f"DEBUG: prices = {prices}") # ← ဒီနေရာမှာ ဘာ Data တွေ ရောက်လာသလဲ?
total = 0
for price in prices:
print(f"DEBUG: adding {price}, total so far = {total}")
total += price
print(f"DEBUG: final total = {total}")
return total
items = [100, 250, 75]
result = calculate_total(items)
print(f"Final: {result}")
DEBUG: prices = [100, 250, 75]
DEBUG: adding 100, total so far = 0
DEBUG: adding 250, total so far = 100
DEBUG: adding 75, total so far = 350
DEBUG: final total = 425
Final: 425

Code ကို ပြင်ဆင်ပြီးသွားရင်တော့ DEBUG print တွေကို ဖြုတ်ပစ်ပါ (သို့မဟုတ်) # comment နဲ့ ပိတ်ထားလိုက်ပါ။


assert — မိမိကိုယ်ကို စစ်ဆေးခြင်း

Section titled “assert — မိမိကိုယ်ကို စစ်ဆေးခြင်း”

assert ဟာ “ဒီအခြေအနေ မှန်ရမယ်” ဆိုပြီး Code ထဲမှာ Check Point တွေ ထည့်တဲ့ နည်းလမ်းပါ:

def divide(a, b):
assert b != 0, "b ကို 0 နဲ့ စားလို့ မရပါဘူး!"
return a / b
print(divide(10, 2)) # 5.0
print(divide(10, 0)) # AssertionError: b ကို 0 နဲ့ စားလို့ မရပါဘူး!

VS Code Debugger — Breakpoint သုံးနည်း

Section titled “VS Code Debugger — Breakpoint သုံးနည်း”

VS Code မှာ Breakpoint တွေ ထည့်ပြီး Code ကို တစ်ကြောင်းချင်းစီ အေးအေးဆေးဆေး Run ကြည့်နိုင်ပါတယ်:

  1. VS Code မှာ Code Line ရဲ့ ဘယ်ဘက် Number နေရာကို နှိပ်ပြီး 🔴 (Red Dot) ထည့်ပါ — ဒါကို Breakpoint လို့ ခေါ်ပါတယ်။
  2. F5 ကို နှိပ်ပါ (သို့မဟုတ်) Run Menu ကနေ Start Debugging ကို ရွေးပါ။
  3. Code ဟာ Run လာပြီး ခင်ဗျား သတ်မှတ်ထားတဲ့ Breakpoint မှာ ရပ်သွားပါလိမ့်မယ်။
  4. F10 နှိပ်ရင် = တစ်ကြောင်းဆင်းမယ် (Step Over)
  5. F11 နှိပ်ရင် = Function ထဲကို ဝင်ကြည့်မယ် (Step Into)
  6. ဘယ်ဘက်က Variables Panel မှာ Variable တွေရဲ့ တန်ဖိုးတွေကို အချိန်နဲ့တပြေးညီ စစ်ဆေးနိုင်ပါတယ်။

Debugging Mindset (ပြဿနာ ဖြေရှင်းနည်း စိတ်ဓာတ်)

Section titled “Debugging Mindset (ပြဿနာ ဖြေရှင်းနည်း စိတ်ဓာတ်)”

Error တွေ တွေ့ရင် ဒီ Steps တွေအတိုင်း လိုက်နာကြည့်ပါ:

  1. Error Message ကို ဖတ်ပါ — အားလုံးဖတ်စရာ မလိုပါဘူး၊ ပထမ ၂-၃ ကြောင်းကိုပဲ သေချာဖတ်ကြည့်ပြီး ဘာ Error လဲ နားလည်အောင် လုပ်ပါ။
  2. Line Number ကို ကြည့်ပါ — Error ဖြစ်သွားတဲ့ Line ကို ချက်ချင်း သွားပါ။
  3. Assumptions ကို စစ်ဆေးပါ — ကိုယ်ထင်ထားတဲ့အတိုင်း Variable တန်ဖိုးတွေ ဟုတ်မဟုတ် print() ထုတ်ကြည့်ပါ။
  4. တစ်ကြိမ်မှာ တစ်ခုချင်းစီ ပြင်ပါ — အများကြီး တစ်ပြိုင်တည်း မပြင်ပါနဲ့၊ တစ်ကြိမ်မှာ တစ်ခုပဲ ပြင်ပြီး ပြန် Run ကြည့်ပါ။
  5. မဖြေရှင်းနိုင်ရင် — Error Message ကို Google မှာ Copy & Paste လုပ်ပြီး ရှာပါ (Stack Overflow မှာ အဖြေတွေ အများကြီး ရှိတတ်ပါတယ်)။