Python Exception
— python — 1 min read
ในภาษา Python เมื่อโปรแกรมเกิดข้อผิดพลาด (error) หรือสถานการณ์ที่ไม่ได้รับคาดหวัง เราสามารถใช้ Exception Handling เพื่อจัดการกับข้อผิดพลาดนั้นได้ ดังนั้นวันนี้เราจะมาเรียนรู้เกี่ยวกับวิธีการรับค่าของ Exception ในภาษา Python กัน
โครงสร้างของ Exception Handling มีดังนี้:
try: # โค้ดที่อาจเกิดข้อผิดพลาดexcept ExceptionType: # โค้ดที่จะทำงานเมื่อเกิด ExceptionTypeelse: # โค้ดที่จะทำงานเมื่อไม่เกิดข้อผิดพลาดใน try blockfinally: # โค้ดที่จะทำงานเสมอไม่ว่าจะเกิดข้อผิดพลาดหรือไม่
ในส่วนของ 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 เพื่อปิดทรัพยากรหรือทำความสะอาดก่อนจบการทำงาน