Python พยายาม…ยกเว้นคำสั่งจับข้อยกเว้น ใช้เพื่อทดสอบโค้ดสำหรับข้อผิดพลาดที่เขียนไว้ในคำสั่ง "try" หากพบข้อผิดพลาด เนื้อหาของบล็อก "ยกเว้น" จะถูกเรียกใช้
วิธีใช้การลองและยกเว้นใน Python
คุณอาจต้องการทดสอบกลุ่มโค้ดเฉพาะเพื่อให้แน่ใจว่าทำงานได้อย่างถูกต้องก่อนที่จะอนุญาตให้โปรแกรมที่เหลือทำงาน ตัวอย่างเช่น สมมติว่าคุณเขียนโค้ดใหม่สำหรับโปรแกรมจำนวนมาก คุณต้องแน่ใจว่ามันทำงานก่อนที่จะปล่อยให้โปรแกรมที่เหลือทำงาน
ลอง…ยกเว้นบล็อก ให้คุณทดสอบโค้ดและจัดการกับข้อยกเว้นหากมีการยกขึ้น คุณสามารถเพิ่มคำสั่งสุดท้ายและ else เพื่อเรียกใช้โค้ดเพิ่มเติมได้ ขึ้นอยู่กับผลลัพธ์ของการลอง...ยกเว้นการบล็อก
ในบทช่วยสอนนี้ เราจะพูดถึงวิธีใช้ try และยกเว้นใน Python เราจะยกตัวอย่างเพื่อให้คุณสามารถเริ่มต้นใช้งานได้อย่างรวดเร็วและยกเว้น
ข้อผิดพลาดของ Python และตัวทบทวนข้อยกเว้น
ใน Python มีข้อผิดพลาดสองประเภทที่คุณอาจพบ:ข้อผิดพลาดทางไวยากรณ์และข้อยกเว้น
ข้อผิดพลาดทางไวยากรณ์ของ Python เป็นข้อผิดพลาดประเภทหนึ่งที่ส่งคืนเมื่อคุณใช้ไวยากรณ์ที่ไม่ถูกต้อง ตัวอย่างเช่น หากคุณเขียน while True วนซ้ำโดยไม่มีโคลอนในตอนท้าย โปรแกรมจะรายงานข้อผิดพลาด
เมื่อเกิดข้อผิดพลาดทางไวยากรณ์ จะส่งคืนชื่อไฟล์ หมายเลขบรรทัด และตัวบ่งชี้ว่าอาจมีข้อผิดพลาดเกิดขึ้น
ข้อยกเว้นคือประเภทของข้อผิดพลาดที่โค้ดอาจมีรูปแบบที่ถูกต้อง แต่ยังมีปัญหาอยู่ มีข้อยกเว้นหลายประเภท แต่สิ่งที่พบได้บ่อยที่สุด ได้แก่ ArithmeticError, ImportError, ZeroDivisionError, NameError และ TypeError
81% ของผู้เข้าร่วมกล่าวว่าพวกเขารู้สึกมั่นใจมากขึ้นเกี่ยวกับโอกาสในการทำงานด้านเทคโนโลยีหลังจากเข้าร่วม bootcamp จับคู่กับ Bootcamp วันนี้
ผู้สำเร็จการศึกษาจากหลักสูตร bootcamp โดยเฉลี่ยใช้เวลาน้อยกว่าหกเดือนในการเปลี่ยนอาชีพ ตั้งแต่เริ่มต้น bootcamp ไปจนถึงหางานแรก
Python ลอง…ยกเว้นคำสั่ง
Python ลอง…ยกเว้นคำสั่งเรียกใช้รหัสภายใต้คำสั่ง "ลอง" หากโค้ดนี้ทำงานไม่สำเร็จ โปรแกรมจะหยุดที่บรรทัดที่ก่อให้เกิดข้อผิดพลาด และโค้ด "ยกเว้น" จะทำงาน
บล็อกการลองอนุญาตให้คุณทดสอบบล็อกของรหัสเพื่อหาข้อผิดพลาด บล็อกยกเว้นช่วยให้คุณจัดการกับข้อผิดพลาดด้วยการตอบสนองที่ผู้ใช้กำหนด
นี่คือไวยากรณ์สำหรับการลอง…ยกเว้นบล็อก:
try: yourcode... except: yourcode...
คุณสามารถใส่โค้ด Python ที่ถูกต้องภายในคำสั่ง try หรือยกเว้น
ลอง…ยกเว้นตัวอย่าง Python
ต่อไปนี้คือตัวอย่างไวยากรณ์สำหรับลอง…ยกเว้นบล็อก:
try: print(ourVariable) except: print('Error returned')
ในตัวอย่างข้างต้น เรายังไม่ได้ประกาศตัวแปร Python ourVariable แต่เราพยายามที่จะใช้มันในบล็อกการลองของเรา
ถ้าเราไม่ได้ลอง...ยกเว้นการบล็อกในโค้ดของเรา โปรแกรมจะส่งคืนข้อความแสดงข้อผิดพลาด แม้ว่าจะเห็นข้อความแสดงข้อผิดพลาดได้ในระหว่างการดีบัก ผู้ใช้ทั่วไปอาจสับสนหากเห็นข้อความแสดงข้อผิดพลาด
เนื่องจากเราได้ลอง…ยกเว้นการบล็อก โค้ดของเรารู้ว่าต้องทำอย่างไรเมื่อพบข้อผิดพลาด
นี่คือผลลัพธ์ของรหัสของเรา:
Error returned
ลอง…ยกเว้นบล็อกช่วยให้คุณจัดการกับข้อยกเว้นได้อย่างสวยงาม คุณอาจต้องการใช้คุณลักษณะเช่นการบันทึกข้อยกเว้นลงในไฟล์บันทึกโดยใช้แพ็คเกจเช่นโมดูลการบันทึกของ Python ซึ่งจะช่วยให้คุณสามารถติดตามข้อยกเว้นที่ได้รับการยกขึ้น
ลอง…ยกเว้น Python:ประโยคที่ยกเว้นหลายรายการ
คุณสามารถทำซ้ำ ยกเว้น คำสั่งสำหรับข้อผิดพลาดประเภทต่างๆ เพื่อทดสอบข้อยกเว้นหลายประการ สิ่งนี้มีประโยชน์หากคุณสงสัยว่าอาจมีข้อยกเว้นข้อใดข้อหนึ่ง แต่คุณไม่แน่ใจว่าจะพบข้อยกเว้นใด
นี่คือตัวอย่างการลอง…ยกเว้นบล็อกที่มองหา NameError:
try: print(ourVariable) except NameError: print('ourVariable is not defined') except: print('Error returned')
ในกรณีนี้ รหัสของเราส่งคืน ourVariable ไม่ได้กำหนดไว้ เพราะรหัสของเราส่งคืน NameError เราสามารถเพิ่มข้อผิดพลาดได้ เช่น ZeroDivisionError หรือ OSError ขึ้นอยู่กับโค้ดที่เรากำลังทดสอบ
ตัวอย่างเช่น คุณอาจตรวจสอบ IOError และ FileNotFoundError หากคุณต้องการเปิดไฟล์ การตรวจสอบข้อยกเว้นหลายรายการจะช่วยให้โปรแกรมของคุณทำงานต่อไปได้แม้ว่าจะมีข้อผิดพลาดในการเปิดไฟล์ที่คุณอ้างอิง
ลอง…ยกเว้น Python:ในที่สุด
แต่ถ้าเราต้องการพิมพ์ข้อความทั้งหากมีการส่งคืนข้อผิดพลาดและไม่พบข้อผิดพลาด นั่นคือสิ่งที่ สุดท้าย บล็อกเข้ามา หากคุณกำหนดส่วนคำสั่งสุดท้าย เนื้อหาจะถูกดำเนินการโดยไม่คำนึงว่าการลอง...ยกเว้นการบล็อกทำให้เกิดข้อผิดพลาด
สุดท้ายบล็อกเป็นตัวบ่งชี้ที่มีประโยชน์ว่าคุณได้ดำเนินการโค้ดแล้ว เนื่องจากไม่ได้แยกความแตกต่างระหว่างว่าโค้ดทำงานสำเร็จหรือไม่ จึงไม่ได้ใช้กันทั่วไป
นี่คือตัวอย่าง:
try: print(ourVariable) except: print('ourVariable is not defined') finally: print('Code has been run.')
โปรแกรมของเราส่งคืนข้อมูลต่อไปนี้:
ourVariable is not defined Code has been run.
รหัสภายใน ยกเว้น บล็อกทำงานเนื่องจากพบข้อยกเว้นในโค้ดของเรา (ไม่ได้กำหนดตัวแปรของเรา) รหัสภายใน สุดท้าย คำสั่งดำเนินการเช่นกัน เนื่องจากโค้ดของเราทำงานเสร็จแล้ว
ลอง…ยกเว้น Python:อื่น
เมื่อใช้คำสั่ง else คุณสามารถกำหนดโค้ดที่จะรันในกรณีที่ไม่มีข้อยกเว้น สามารถใช้เพื่อแจ้งให้ผู้ใช้ทราบว่าโปรแกรมดำเนินการได้สำเร็จ เป็นต้น
ลองนึกภาพว่าคุณกำลังสร้างระบบลงทะเบียนสำหรับเกม คุณอาจรวมการลอง...ยกเว้น...บล็อกอื่นเพื่อตรวจสอบว่าชื่อผู้ใช้หรือที่อยู่อีเมลที่ผู้ใช้เลือกนั้นถูกต้องหรือไม่ หากไม่เป็นเช่นนั้น คำสั่งยกเว้นจะทำงาน หากชื่อผู้ใช้หรือที่อยู่อีเมลถูกต้อง บล็อก else ก็สามารถทำงานได้
นี่คือตัวอย่าง:
try: print('Test') except: print('There is a problem.') else: print('There are no problems.')
รหัสของเราส่งคืนดังต่อไปนี้:
There are no problems.
โปรแกรม Python ของเราไม่มีข้อยกเว้น เป็นผลให้รหัสภายใน else คำสั่งดำเนินการ อื่นๆ คำสั่งพิมพ์ข้อความระบุว่าไม่มีปัญหากับรหัสของเรา
ดู Repl.it จากบทช่วยสอนนี้:
บทสรุป
ลอง…ยกเว้นบล็อกทำให้ง่ายต่อการดีบักโค้ด Python ของคุณ โปรแกรมพยายามเรียกใช้โค้ดในบล็อก "ลอง" หากล้มเหลว บล็อก "ยกเว้น" จะทำงาน รหัสในคำสั่ง "สุดท้าย" จะทำงานโดยไม่คำนึงถึงว่ามีการบล็อก "ยกเว้น" หรือไม่
ในบทช่วยสอนนี้ เราได้แจกแจงวิธีใช้ try…ยกเว้นบล็อก เราได้พูดคุยถึงวิธีการใช้ else และ ยกเว้น เพื่อปรับแต่งการจัดการข้อยกเว้นของคุณ
บล็อกเหล่านี้มีประโยชน์เมื่อคุณกำลังทดสอบโค้ดที่มีอยู่หรือเขียนโค้ดใหม่ ช่วยให้มั่นใจได้ว่าโปรแกรมของคุณทำงานอย่างถูกต้องและไม่มีข้อผิดพลาด
สำหรับแหล่งข้อมูลการเรียนรู้ Python เพิ่มเติม โปรดดูคู่มือ How to Learn Python ที่ครอบคลุม