Python การใช้งาน Try และ Except

Try และ Except ใน Python เป็นกลไกที่ใช้สำหรับการจัดการกับข้อผิดพลาด (exceptions) ที่อาจเกิดขึ้นขณะรันโค้ด ซึ่งช่วยให้โปรแกรมไม่หยุดทำงานเมื่อพบข้อผิดพลาด แต่สามารถจัดการข้อผิดพลาดและดำเนินการต่อไปได้

โครงสร้างพื้นฐานของ Try-Except

Python
try:
    # โค้ดที่อาจเกิดข้อผิดพลาด
except SomeException:
    # โค้ดที่ทำงานเมื่อมีข้อผิดพลาดเกิดขึ้น

การใช้งานพื้นฐาน

Python
try:
    x = 1 / 0  # การหารด้วยศูนย์จะเกิดข้อผิดพลาด
except ZeroDivisionError:
    print("ไม่สามารถหารด้วยศูนย์ได้")

ผลลัพธ์

จับข้อผิดพลาดที่เฉพาะเจาะจง

ใน Python มีข้อผิดพลาดหลายประเภท เราสามารถจับข้อผิดพลาดที่เฉพาะเจาะจงได้โดยการระบุประเภทของข้อผิดพลาด

Python
try:
    number = int("abc")  # การแปลงข้อความเป็นตัวเลขที่ไม่ถูกต้อง
except ValueError:
    print("เกิดข้อผิดพลาดในการแปลงข้อมูลเป็นตัวเลข")

ผลลัพธ์

จับข้อผิดพลาดหลายประเภท

เราสามารถจับข้อผิดพลาดหลายประเภทได้โดยการใช้ except หลายบรรทัด หรือใช้วงเล็บเพื่อจับข้อผิดพลาดหลายประเภทในบรรทัดเดียว

Python
try:
    x = 1 / 0
except (ZeroDivisionError, ValueError):
    print("เกิดข้อผิดพลาดในการคำนวณหรือแปลงข้อมูล")

ผลลัพธ์

การใช้งาน else

else จะทำงานเมื่อไม่มีข้อผิดพลาดเกิดขึ้นในบล็อก try

Python
try:
    x = 10 / 2
except ZeroDivisionError:
    print("ไม่สามารถหารด้วยศูนย์ได้")
else:
    print(f"ผลลัพธ์คือ {x}")

ผลลัพธ์

การใช้งาน finally

finally จะทำงานเสมอไม่ว่าข้อผิดพลาดจะเกิดขึ้นหรือไม่ เป็นการทำงานเพื่อปิดทรัพยากรหรือการกระทำบางอย่างที่ต้องทำไม่ว่าจะมีข้อผิดพลาดหรือไม่

Python
try:
    file = open("file.txt", "r")
    content = file.read()
except FileNotFoundError:
    print("ไม่พบไฟล์")
finally:
    print("ปิดไฟล์")

ผลลัพธ์

การสร้างข้อผิดพลาดเองด้วย raise

บางครั้งเราอาจต้องการสร้างข้อผิดพลาดขึ้นเองเพื่อหยุดการทำงานหรือแจ้งเตือนข้อผิดพลาดในสถานการณ์เฉพาะ

Python
try:
    x = -1
    if x < 0:
        raise ValueError("ค่าไม่สามารถเป็นลบได้")
except ValueError as e:
    print(e)

ผลลัพธ์

สรุป

  • try คือบล็อกที่ใช้ครอบโค้ดที่อาจเกิดข้อผิดพลาด
  • except ใช้สำหรับจัดการข้อผิดพลาดที่เกิดขึ้น
  • else ทำงานเมื่อไม่มีข้อผิดพลาดเกิดขึ้น
  • finally ทำงานเสมอไม่ว่าจะเกิดข้อผิดพลาดหรือไม่
  • raise ใช้สร้างข้อผิดพลาดขึ้นเองในโค้ด

การใช้งาน try-except ทำให้โปรแกรมมีความทนทานและสามารถจัดการข้อผิดพลาดได้อย่างมีประสิทธิภาพ

แชร์เรื่องนี้