Computer >> คอมพิวเตอร์ >  >> การเขียนโปรแกรม >> Python

ลองและยกเว้นในโปรแกรม Python


ในบทช่วยสอนนี้ เราจะเรียนรู้เกี่ยวกับ การลอง และ ยกเว้น ของไพทอน 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 (การโทรล่าสุดล่าสุด) ใน 3 arr =[1, 2, 3, 4, 5] 4 # เข้าถึงรายการจากอาร์เรย์ที่มีดัชนีที่ไม่ถูกต้อง ----> 5 six =arr[6] 6 พิมพ์ (f"เราไม่ได้รับข้อผิดพลาดใด ๆ {six }") 7 ยกเว้น ValueError:IndexError:รายการดัชนีอยู่นอกช่วง

เราได้รับข้อผิดพลาด เราได้ให้ ValueError ในบล็อกยกเว้น แต่เราได้ IndexError ที่ไม่ได้จัดการโดย ยกเว้น บล็อก. ดังนั้นเราจึงได้รับข้อผิดพลาด โปรดใช้ความระมัดระวังขณะระบุข้อผิดพลาดในการยกเว้นในบล็อกยกเว้น

บทสรุป

หากคุณมีคำถามใดๆ เกี่ยวกับบทแนะนำ โปรดระบุในส่วนความคิดเห็น