ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับ การลอง และ ยกเว้น ของไพทอน Python มีแนวคิดที่เรียกว่า การจัดการข้อผิดพลาดและข้อยกเว้น
คำหลัก ลอง และ ยกเว้น ใช้ในการจัดการข้อผิดพลาดและข้อยกเว้น
โดยทั่วไป เราจะพบข้อผิดพลาดสองประเภทใน Python พวกมันคือ −
-
ข้อผิดพลาดทางไวยากรณ์ - Python ให้ข้อผิดพลาดประเภทนี้เมื่อไม่เข้าใจบรรทัดของโค้ดในโปรแกรม
-
ข้อผิดพลาดในการยกเว้น - ข้อผิดพลาดที่ตรวจพบระหว่างรันไทม์ของโปรแกรม ตัวอย่าง:- ZeroDivisionError, ValueError เป็นต้น
เราไม่สามารถหยุดข้อผิดพลาดทางไวยากรณ์ได้ แต่เราสามารถใกล้ชิดได้หากโปรแกรมพบข้อผิดพลาดในการยกเว้นโดยใช้ ลองยกเว้น มาดูข้อผิดพลาดข้อยกเว้นที่พบบ่อยที่สุดใน Python
-
ZeroDivisionError − เกิดขึ้นเมื่อเราพยายามหารตัวเลขใดๆ ด้วยศูนย์ (0)
-
ValueError − จะเพิ่มขึ้นเมื่อเราส่งค่าที่ไม่เหมาะสมไปยังฟังก์ชัน
-
IndexError − เมื่อเราพยายามเข้าถึงดัชนีที่ไม่สามารถใช้ได้
-
KeyError − เมื่อเราพยายามเข้าถึงคีย์ที่ไม่มีอยู่ในพจนานุกรม
-
ImportError − หากเราพยายามนำเข้าโมดูลที่ไม่มีอยู่จริง
-
IOError − เกิดขึ้นเมื่อ Python ไม่สามารถเปิดไฟล์ได้
-
แป้นพิมพ์ขัดจังหวะ − เกิดขึ้นเมื่อผู้ใช้กดปุ่มที่ไม่ต้องการ
มีข้อผิดพลาดพิเศษมากมายใน Python เราสามารถจัดการสิ่งเหล่านี้ได้อย่างง่ายดายด้วย การยกเว้น มาดูไวยากรณ์ของ ลองยกเว้น ก่อน
# ลองยกเว้นไวยากรณ์:# statement # statement # ...ยกเว้น:# statement # statement # ...
Python ดำเนินการอย่างไร ลองยกเว้น รหัสบล็อค? มาดูกันทีละขั้นตอน
-
ก่อนอื่น Python รันโค้ดภายใน ลอง บล็อค
-
หากไม่มีข้อผิดพลาดในการยกเว้น ในโค้ดแล้ว ยกเว้น บล็อกจะไม่ทำงาน
-
หากเกิดข้อผิดพลาดในการยกเว้น เกิดขึ้นในโค้ดแล้ว ลอง บล็อกจะถูกข้ามและ ยกเว้น รหัสบล็อกจะดำเนินการ**.
-
หากเกิดข้อผิดพลาดในการยกเว้น เกิดขึ้นและ ยกเว้น บล็อกไม่สามารถจัดการได้ ดังนั้นข้อผิดพลาดข้อยกเว้นที่เกี่ยวข้องจะเพิ่มขึ้น
-
เราสามารถมีได้หลาย ยกเว้น คำสั่งสำหรับบล็อกหนึ่งลอง
ตัวอย่าง
มาดูตัวอย่างที่ไม่มีข้อผิดพลาดข้อยกเว้น
# ไม่มีข้อผิดพลาดข้อยกเว้น:arr =[1, 2, 3, 4, 5] # เข้าถึงรายการจากอาร์เรย์ที่มีดัชนีที่ถูกต้อง two =arr[1] print(f"เราไม่ได้รับข้อผิดพลาดใด ๆ {two }") ยกเว้น IndexError:print("ดัชนีที่ระบุไม่ถูกต้อง")
ผลลัพธ์
หากคุณเรียกใช้โปรแกรมข้างต้น คุณจะได้ผลลัพธ์ดังต่อไปนี้
เราไม่ได้รับข้อผิดพลาดใดๆ 2
เราไม่ได้รับข้อผิดพลาดในการยกเว้น ดังนั้น โค้ดในบล็อกทดลองจึงทำงาน
ตัวอย่าง
มาดูตัวอย่างเดียวกันกับดัชนีที่ไม่ถูกต้อง
# ไม่มีข้อผิดพลาดข้อยกเว้น:arr =[1, 2, 3, 4, 5] # เข้าถึงรายการจากอาร์เรย์ที่มีดัชนีที่ไม่ถูกต้อง six =arr[6] print(f"เราไม่ได้รับข้อผิดพลาดใด ๆ {six }") ยกเว้น IndexError:print("ดัชนีที่ระบุไม่ถูกต้อง")
ผลลัพธ์
หากคุณรันโค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
ดัชนีที่ระบุไม่ถูกต้อง
เราได้รับ IndexError ใน ลอง บล็อก. ดังนั้นรหัสใน ยกเว้น บล็อกถูกดำเนินการ
ตัวอย่าง
มาดูกันว่าจะเกิดอะไรขึ้นหากยกเว้นไม่สามารถจัดการกับข้อผิดพลาดข้อยกเว้นได้
# ไม่มีข้อผิดพลาดข้อยกเว้น:arr =[1, 2, 3, 4, 5] # เข้าถึงรายการจากอาร์เรย์ที่มีดัชนีที่ไม่ถูกต้อง six =arr[6] print(f"เราไม่ได้รับข้อผิดพลาดใด ๆ {six }")ยกเว้น ValueError:print("ดัชนีที่ระบุไม่ถูกต้อง")
ผลลัพธ์
หากรันโค้ดด้านบน คุณจะได้ผลลัพธ์ดังต่อไปนี้
<ก่อนหน้า>------------------------------------------------------------- ---------------------------- IndexError Traceback (การโทรล่าสุดล่าสุด)เราได้รับข้อผิดพลาด เราได้ให้ ValueError ในบล็อกยกเว้น แต่เราได้ IndexError ที่ไม่ได้จัดการโดย ยกเว้น บล็อก. ดังนั้นเราจึงได้รับข้อผิดพลาด โปรดใช้ความระมัดระวังขณะระบุข้อผิดพลาดในการยกเว้นในบล็อกยกเว้น
บทสรุป
หากคุณมีคำถามใดๆ เกี่ยวกับบทแนะนำ โปรดระบุในส่วนความคิดเห็น