Python:
การจัดการกับข้อผิดพลาด

วิธีการ:

# บล็อก try-except พื้นฐาน
try:
    # โค้ดที่มีความเสี่ยง
    number = int(input("ใส่ตัวเลข: "))
except ValueError:
    # จัดการข้อผิดพลาด
    print("นั่นไม่ใช่ตัวเลข!")

# ระบุข้อยกเว้นหลายรายการ
try:
    # โค้ดที่อาจทำให้เกิดข้อยกเว้นต่างๆ
    result = 10 / int(input("ใส่ตัวหาร: "))
except ZeroDivisionError:
    print("อุ๊ย! ไม่สามารถหารด้วยศูนย์ได้.")
except ValueError:
    print("ฉันต้องการตัวเลข, เพื่อน.")

# การใช้ else และ finally
try:
    number = int(input("ใส่ตัวเลขเพื่อยกกำลังสอง: "))
except ValueError:
    print("ฉันบอกว่าตัวเลขนะ!")
else:
    # ไม่มีข้อผิดพลาดเกิดขึ้น
    print("ตัวเลขของคุณยกกำลังสองคือ:", number**2)
finally:
    # ทำงานเสมอ
    print("ขอบคุณที่ลองใช้งานนี้!")

ตัวอย่างผลลัพธ์เมื่อป้อนตัวเลขที่ไม่ถูกต้องสำหรับบล็อกแรก:

ใส่ตัวเลข: สวัสดี
นั่นไม่ใช่ตัวเลข!

ศึกษาลึกลงไป

ตั้งแต่ยุคแรกของการเขียนโปรแกรม, การจัดการข้อผิดพลาดถือเป็นสิ่งสำคัญ วิธีการเริ่มต้นนั้นเป็นพื้นฐานเช่นการตรวจสอบเงื่อนไขก่อนดำเนินการที่มีความเสี่ยงทุกครั้ง ไวยากรณ์ try-except ของ Python มีมรดกมาจากการจัดการข้อยกเว้นในภาษาเก่าๆ เช่น C++ และ Java, ทำให้กระบวนการนี้ง่ายขึ้น

เมื่อคุณ try บล็อกของโค้ด, Python จะสังเกตการณ์สำหรับข้อยกเว้นใดๆ หากมีข้อผิดพลาดปรากฏขึ้น, บล็อก except จะจับมัน คุณสามารถระบุข้อยกเว้นที่คุณจับได้อย่างเฉพาะเจาะจงหรือจับพวกมันทั้งหมดด้วย except ว่างๆ อย่างไรก็ตาม, การเริ่มต้นด้วยข้อยกเว้นเฉพาะเจาะจงนั้นเป็นวิธีที่ดีกว่า - มันแม่นยำ, ไม่ใช่เครือข่ายจับทั้งหมด

else และ finally เป็นส่วนเสริมในแนวคิดนี้ บล็อก else จะทำงานหากบล็อก try ไม่มีข้อผิดพลาด finally เป็นเพื่อนที่เชื่อถือได้ที่จะทำงานไม่ว่าจะเกิดอะไรขึ้น - คิดถึงการดำเนินการทำความสะอาด

มีทางเลือกอื่นหรือไม่? แน่นอนว่ามี บางภาษาใช้รหัสการส่งคืนแทนการขัดข้อง คุณอาจพบกับคำสั่ง with สำหรับการจัดการทรัพยากรหรือ assertions ที่ตรวจสอบเงื่อนไขขณะพัฒนา แต่เมื่อเราพูดถึงกลยุทธ์การจัดการข้อผิดพลาดที่มั่นคง, โมเดล try-catch โดดเด่นด้วยความสามารถในการอ่านและโครงสร้าง

ดูเพิ่มเติม

นี่คือทรัพยากรเพิ่มเติมที่ดีสำหรับการศึกษาลึกลงไป: