Skip to content
Siamcoder

Python Exception

python1 min read

Picture of laptop with error message

ในภาษา Python เมื่อโปรแกรมเกิดข้อผิดพลาด (error) หรือสถานการณ์ที่ไม่ได้รับคาดหวัง เราสามารถใช้ Exception Handling เพื่อจัดการกับข้อผิดพลาดนั้นได้ ดังนั้นวันนี้เราจะมาเรียนรู้เกี่ยวกับวิธีการรับค่าของ Exception ในภาษา Python กัน

โครงสร้างของ Exception Handling มีดังนี้:

try:
# โค้ดที่อาจเกิดข้อผิดพลาด
except ExceptionType:
# โค้ดที่จะทำงานเมื่อเกิด ExceptionType
else:
# โค้ดที่จะทำงานเมื่อไม่เกิดข้อผิดพลาดใน try block
finally:
# โค้ดที่จะทำงานเสมอไม่ว่าจะเกิดข้อผิดพลาดหรือไม่

ในส่วนของ try block เราจะเขียนโค้ดที่อาจเกิดข้อผิดพลาดได้ในส่วนนั้น หากเกิด Exception เกิดขึ้น โปรแกรมจะข้ามไปทำงานที่ except block โดยจะตรวจสอบว่า Exception ที่เกิดขึ้นเป็นแบบไหน และทำงานตามโค้ดที่เรากำหนดใน except block นั้น

หากไม่เกิดข้อผิดพลาดใน try block โปรแกรมจะทำงานที่ else block แทน ซึ่งเราสามารถเขียนโค้ดที่ต้องการให้ทำงานเมื่อไม่เกิดข้อผิดพลาดในส่วนนี้ได้

สุดท้าย เรามาสนทนาถึง finally block ใน finally block เราจะเขียนโค้ดที่ต้องการให้ทำงานเสมอไม่ว่าจะเกิดข้อผิดพลาดหรือไม่ ในกรณีที่เราต้องการทำความสะอาดหรือปล่อยทรัพยากรที่ใช้งานอยู่ เช่น ปิดไฟล์ ปิดการเชื่อมต่อฐานข้อมูล เป็นต้น

ตัวอย่างการใช้งาน Exception Handling:

try:
x = int(input("ป้อนตัวเลข: "))
result = 100 / x
print("ผลลัพธ์:", result)
except ValueError:
print("คุณป้อนข้อมูลที่ไม่ใช่ตัวเลข")
except ZeroDivisionError:
print("ห้ามหารด้วยศูนย์")
finally:
print("จบการทำงานของโปรแกรม")

ในตัวอย่างข้างต้น เราใช้ try block เพื่อรับค่าจากผู้ใช้และทำการหาร หากผู้ใช้ป้อนข้อมูลที่ไม่ใช่ตัวเลขจะเกิด ValueError เราจึงใส่ Exception ValueError ใน except block เพื่อจัดการกับข้อผิดพลาดนี้ นอกจากนี้ถ้าผู้ใช้ป้อน 0 ที่จะทำให้เกิดการหารด้วยศูนย์เราก็จัดการด้วย Exception ZeroDivisionError ใน except block

หลังจากที่โปรแกรมทำงานทุกอย่างเสร็จสิ้นโปรแกรมจะทำงานที่ finally block เพื่อปิดทรัพยากรหรือทำความสะอาดก่อนจบการทำงาน