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

Python ลองยกเว้น:คำแนะนำทีละขั้นตอน

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 ที่ครอบคลุม