Try และ Except ใน Python เป็นกลไกที่ใช้สำหรับการจัดการกับข้อผิดพลาด (exceptions) ที่อาจเกิดขึ้นขณะรันโค้ด ซึ่งช่วยให้โปรแกรมไม่หยุดทำงานเมื่อพบข้อผิดพลาด แต่สามารถจัดการข้อผิดพลาดและดำเนินการต่อไปได้
โครงสร้างพื้นฐานของ Try-Except
try:
# โค้ดที่อาจเกิดข้อผิดพลาด
except SomeException:
# โค้ดที่ทำงานเมื่อมีข้อผิดพลาดเกิดขึ้นการใช้งานพื้นฐาน
try:
x = 1 / 0 # การหารด้วยศูนย์จะเกิดข้อผิดพลาด
except ZeroDivisionError:
print("ไม่สามารถหารด้วยศูนย์ได้")ผลลัพธ์
ไม่สามารถหารด้วยศูนย์ได้
จับข้อผิดพลาดที่เฉพาะเจาะจง
ใน Python มีข้อผิดพลาดหลายประเภท เราสามารถจับข้อผิดพลาดที่เฉพาะเจาะจงได้โดยการระบุประเภทของข้อผิดพลาด
try:
number = int("abc") # การแปลงข้อความเป็นตัวเลขที่ไม่ถูกต้อง
except ValueError:
print("เกิดข้อผิดพลาดในการแปลงข้อมูลเป็นตัวเลข")ผลลัพธ์
เกิดข้อผิดพลาดในการแปลงข้อมูลเป็นตัวเลข
จับข้อผิดพลาดหลายประเภท
เราสามารถจับข้อผิดพลาดหลายประเภทได้โดยการใช้ except หลายบรรทัด หรือใช้วงเล็บเพื่อจับข้อผิดพลาดหลายประเภทในบรรทัดเดียว
try:
x = 1 / 0
except (ZeroDivisionError, ValueError):
print("เกิดข้อผิดพลาดในการคำนวณหรือแปลงข้อมูล")ผลลัพธ์
เกิดข้อผิดพลาดในการคำนวณหรือแปลงข้อมูล
การใช้งาน else
else จะทำงานเมื่อไม่มีข้อผิดพลาดเกิดขึ้นในบล็อก try
try:
x = 10 / 2
except ZeroDivisionError:
print("ไม่สามารถหารด้วยศูนย์ได้")
else:
print(f"ผลลัพธ์คือ {x}")ผลลัพธ์
ผลลัพธ์คือ 5.0
การใช้งาน finally
finally จะทำงานเสมอไม่ว่าข้อผิดพลาดจะเกิดขึ้นหรือไม่ เป็นการทำงานเพื่อปิดทรัพยากรหรือการกระทำบางอย่างที่ต้องทำไม่ว่าจะมีข้อผิดพลาดหรือไม่
try:
file = open("file.txt", "r")
content = file.read()
except FileNotFoundError:
print("ไม่พบไฟล์")
finally:
print("ปิดไฟล์")ผลลัพธ์
ไม่พบไฟล์
ปิดไฟล์
การสร้างข้อผิดพลาดเองด้วย raise
บางครั้งเราอาจต้องการสร้างข้อผิดพลาดขึ้นเองเพื่อหยุดการทำงานหรือแจ้งเตือนข้อผิดพลาดในสถานการณ์เฉพาะ
try:
x = -1
if x < 0:
raise ValueError("ค่าไม่สามารถเป็นลบได้")
except ValueError as e:
print(e)ผลลัพธ์
ค่าไม่สามารถเป็นลบได้
สรุป
tryคือบล็อกที่ใช้ครอบโค้ดที่อาจเกิดข้อผิดพลาดexceptใช้สำหรับจัดการข้อผิดพลาดที่เกิดขึ้นelseทำงานเมื่อไม่มีข้อผิดพลาดเกิดขึ้นfinallyทำงานเสมอไม่ว่าจะเกิดข้อผิดพลาดหรือไม่raiseใช้สร้างข้อผิดพลาดขึ้นเองในโค้ด
การใช้งาน try-except ทำให้โปรแกรมมีความทนทานและสามารถจัดการข้อผิดพลาดได้อย่างมีประสิทธิภาพ
