ทุกภาษาโปรแกรมมิ่งมีกลไกจัดการข้อยกเว้น (exception) ที่เกิดขึ้นระหว่างการรันโปรแกรม ใน Python คีย์เวิร์ด assert ใช้เพื่อตรวจสอบเงื่อนไขและแสดงข้อความแสดงข้อผิดพลาดที่ผู้เขียนโปรแกรมกำหนดเอง แทนที่จะเป็นข้อความข้อผิดพลาดจากระบบ ทำให้ง่ายต่อการค้นหาและแก้ไขข้อผิดพลาดเมื่อเกิดขึ้น
การใช้งาน assert
ในตัวอย่างด้านล่าง เราใช้คีย์เวิร์ด assert เพื่อจับข้อผิดพลาดการหารด้วยศูนย์ ข้อความจะถูกเขียนตามที่โปรแกรมเมอร์ต้องการ
ตัวอย่าง
x = 4
y = 0
assert y != 0, "หากคุณหารด้วย 0 จะเกิดข้อผิดพลาด"
print("ค่าที่กำหนดคือ ", "x:", x, "y:", y)
print("\nการคูณของ x และ y คือ", x * y)
print("\nการหารของ x และ y คือ", x / y)
การรันโค้ดข้างต้นจะให้ผลลัพธ์ดังนี้:
Traceback (most recent call last):
File "scratch.py", line 3, in
assert y != 0, "if you divide by 0 it gives error"
AssertionError: if you divide by 0 it gives error
การไม่ใช้ assert
โดยไม่มีคำสั่ง assert เราจะได้ข้อผิดพลาดที่ระบบสร้างขึ้น ซึ่งอาจต้องใช้การตรวจสอบเพิ่มเติมเพื่อเข้าใจและค้นหาต้นทางของข้อผิดพลาด
ตัวอย่าง
x = 4
y = 0
# assert y != 0, "if you divide by 0 it gives error"
print("ค่าที่กำหนดคือ ", "x:", x, "y:", y)
print("\nการคูณของ x และ y คือ", x * y)
print("\nการหารของ x และ y คือ", x / y)
การรันโค้ดข้างต้นจะให้ผลลัพธ์ดังนี้:
multiplication of x and y is 0 Traceback (most recent call last): File "scratch.py", line 6, inprint("\ndivision of x and y is", x / y) ZeroDivisionError: division by zero
สรุป: การใช้ assert ช่วยให้การดีบัก (debug) ง่ายขึ้น เพราะข้อความแสดงข้อผิดพลาดจะชัดเจนและเกี่ยวข้องกับตรรกะทางธุรกิจโดยตรง