การจัดการข้อยกเว้นใน Python: การจัดการข้อยกเว้นโดยใช้ TryException
เผยแพร่แล้ว: 2021-06-29ในขณะที่พบข้อผิดพลาด โปรแกรมของ Python จะถูกยกเลิก ข้อผิดพลาดมักเป็นปัญหาที่เกิดขึ้นในโปรแกรมที่หยุดการทำงาน ข้อผิดพลาดอาจเกิดจากข้อผิดพลาดในไวยากรณ์หรืออาจเป็นข้อยกเว้น เมื่อใดก็ตามที่ parser ตรวจพบคำสั่งที่ไม่ถูกต้อง จะมีข้อผิดพลาดทางไวยากรณ์เกิดขึ้น
อย่างไรก็ตาม เมื่อโค้ดที่มีไวยากรณ์ที่ถูกต้องสร้างข้อผิดพลาด จะเรียกว่าข้อยกเว้น ข้อยกเว้นในตัวต่างๆ มีอยู่ใน python สิ่งเหล่านี้เกิดขึ้นพร้อมกับเหตุการณ์ภายในที่โฟลว์ปกติของโปรแกรมเปลี่ยนไป
ดังนั้น ข้อยกเว้นอาจถูกกำหนดให้เป็นเงื่อนไขโปรแกรมที่ผิดปกติบางอย่างซึ่งส่งผลให้โค้ดหยุดชะงัก และด้วยเหตุนี้โฟลว์ของโปรแกรมจึงถูกยกเลิก
การทำงานของโปรแกรมจะหยุดทันทีที่พบข้อยกเว้น สิ่งนี้จะหยุดโค้ดเพื่อดำเนินการต่อไป ดังนั้น ข้อยกเว้นคือข้อผิดพลาดอันเป็นผลมาจากรันไทม์ที่สคริปต์หลามไม่สามารถจัดการได้
สำหรับ การจัดการ ข้อยกเว้น ใน python ภาษาสคริปต์ python ได้จัดเตรียมวิธีแก้ปัญหาเพื่อให้การดำเนินการของโค้ดดำเนินต่อไปและไม่มีการหยุดชะงักใดๆ ไม่มีการจัดการข้อยกเว้นหยุดรันโค้ดที่มีอยู่หลังจากรหัสที่แสดงข้อยกเว้น
มีตัวเลือกในตัวหลายตัวในไพ ธ อนที่อนุญาตให้เรียกใช้โปรแกรมโดยไม่หยุดชะงักรวมถึงข้อยกเว้นทั่วไป นอกจากนี้ยังมีข้อกำหนดของ python ข้อยกเว้นที่กำหนด เอง สำหรับโปรแกรม python ใดๆ ข้อยกเว้นทั่วไปที่สามารถส่งออกได้คือ:
- ZeroDivisionError: ข้อยกเว้นประเภทนี้จะส่งผลเมื่อใช้ศูนย์เพื่อหารตัวเลข
- NameError: เมื่อใดก็ตามที่โปรแกรมไม่สามารถค้นหาชื่อได้ ไม่ว่าจะเป็น global หรือ local ข้อยกเว้นประเภทนี้จะเกิดขึ้น
- IndentationError: การเยื้องที่ไม่ถูกต้องทำให้เกิด indentationError
- IOError : ความล้มเหลวของการดำเนินการอินพุต-เอาต์พุตส่งผลให้เกิด IOError
- EOFError: มันเกิดขึ้นในการทำงานอย่างต่อเนื่องของโปรแกรมแม้ในขณะที่
ถึงจุดสิ้นสุดของไฟล์แล้ว
สารบัญ
ทำให้เกิดข้อยกเว้น
สำหรับการโยนข้อยกเว้นภายใต้เงื่อนไขบางประการ จะใช้การเพิ่ม
การทำงานของโปรแกรมหยุดทำงาน และข้อยกเว้นที่เกี่ยวข้องจะแสดงบนหน้าจอ การแสดงข้อยกเว้นช่วยให้ผู้ใช้ทราบว่าปัญหาพื้นฐานคืออะไร
ใน python ผ่านการใช้การยกประโยค เราสามารถทำให้เกิดข้อยกเว้น แอปพลิเคชันนี้มีประโยชน์ในกรณีที่จำเป็นต้องหยุดโปรแกรมโดยแจ้งข้อยกเว้น
ตัวอย่างเช่น: สมมุติว่าโปรแกรมต้องการหน่วยความจำประมาณ 1GB สำหรับการดำเนินการและพยายามใช้พื้นที่ 1 GB ในกรณีนั้น เพื่อหยุดการรันโปรแกรม อาจมีข้อยกเว้น
ไวยากรณ์สำหรับการเพิ่มข้อยกเว้น:
Exception_class,<value>
ดังนั้น,
- 'raise' ใช้สำหรับการเพิ่มข้อยกเว้นในโปรแกรม
- ค่าสามารถกำหนดให้กับข้อยกเว้นซึ่งสามารถระบุได้ในวงเล็บ
- การเข้าถึงค่าสามารถทำได้ด้วยคำหลัก ”as” ค่าที่กำหนดให้กับข้อยกเว้นสามารถเก็บไว้ในตัวแปรอ้างอิงที่แสดงด้วย "e"
- สำหรับการระบุประเภทข้อยกเว้น ค่าสามารถส่งผ่านไปยังข้อยกเว้นได้
ยืนยันข้อผิดพลาด
การยืนยันสามารถทำได้ใน python แทนที่จะปล่อยให้โปรแกรมหยุดทำงาน มีการยืนยันว่าโปรแกรมตรงตามเงื่อนไขเฉพาะ โปรแกรมจะทำงานต่อไปหากเงื่อนไขเป็นจริง มิฉะนั้น โปรแกรมจะส่งข้อยกเว้น AssertionError เมื่อเงื่อนไขกลายเป็นเท็จ
การจัดการข้อยกเว้น ผ่าน การลองและยกเว้นบล็อก
ข้อยกเว้นใน python ถูกจับแล้วจัดการโดย try และยกเว้นบล็อกใน python รหัสภายในบล็อกการลองทำงานตามปกติเป็นส่วนหนึ่งของโปรแกรม บล็อกอื่นประกอบด้วยคำสั่งที่ดำเนินการเพื่อตอบสนองต่อข้อยกเว้นที่โปรแกรมส่งไปในบล็อกการลอง
โปรแกรมจะแสดงข้อยกเว้นเมื่อใดก็ตามที่พบข้อผิดพลาดในโค้ดที่ถูกต้องตามหลักไวยากรณ์ หากข้อยกเว้นที่ได้รับไม่ได้รับการจัดการอย่างเหมาะสม โปรแกรมจะขัดข้อง ในสถานการณ์ดังกล่าว บล็อกการยกเว้นจะกำหนดการตอบสนองของโปรแกรมต่อข้อยกเว้นนั้น
การใช้คำสั่ง try และ ยกเว้น จะเป็นที่เข้าใจได้ดีที่สุดผ่านตัวอย่างต่อไปนี้ซึ่งนำมาจากแหล่งที่กล่าวถึง
ในกรณีนี้ เมื่อใดก็ตามที่มีข้อยกเว้นเกิดขึ้น โปรแกรมจะทำงานต่อไปและจะแจ้งให้ผู้ใช้ทราบว่าโปรแกรมไม่ประสบความสำเร็จแทนที่จะให้เอาต์พุตเปล่า
ชำระเงิน : แนวคิดและหัวข้อโครงการ Python
โปรแกรมแสดงประเภทข้อผิดพลาดที่เกิดขึ้นจากการเรียกใช้ฟังก์ชัน อย่างไรก็ตาม ข้อผิดพลาดที่เกิดจากฟังก์ชันนั้นสามารถตรวจจับได้เพื่อให้ทราบถึงสิ่งที่ผิดพลาดจริงๆ
การรันโค้ดในเครื่อง windows จะสร้างสิ่งต่อไปนี้
ข้อความที่แสดงขึ้นก่อนบ่งชี้ว่า AssertionError ซึ่งผู้ใช้จะได้รับแจ้งว่าฟังก์ชันนี้สามารถทำงานได้บนระบบปฏิบัติการ Linux เท่านั้น ข้อความที่สองให้ข้อมูลเพิ่มเติมว่าฟังก์ชันใดไม่สามารถดำเนินการได้
ไม่มีอยู่จริงหาก file.log จะสร้างผลลัพธ์ที่มีข้อความ “ไม่สามารถเปิด file.log”
โปรแกรมจะยังคงทำงานต่อไปเนื่องจากเป็นข้อความที่ส่งข้อมูลไปยังผู้ใช้ มีข้อยกเว้นในตัวจำนวนมากในเอกสาร Python ข้อยกเว้นประการหนึ่งดังที่อธิบายไว้ด้านล่าง

การไม่มี file.log ในกรณีนี้จะสร้างผลลัพธ์ต่อไปนี้
สามารถตรวจจับข้อยกเว้นต่างๆ ได้โดยใช้การเรียกฟังก์ชันเพิ่มเติมในคำสั่ง try อย่างไรก็ตาม เมื่อตรวจพบข้อยกเว้น คำสั่ง try clause จะหยุดลง
ประโยคอื่น
การใช้ส่วนคำสั่ง else สามารถช่วยในการสั่งโปรแกรมให้ดำเนินการกลุ่มคำสั่งได้ก็ต่อเมื่อไม่มีข้อยกเว้น
ส่วนคำสั่ง else ถูกดำเนินการเพียงเพราะไม่มีข้อยกเว้น หากรหัสมีข้อยกเว้น ผลลัพธ์จะตามมา
Python ข้อยกเว้นที่กำหนดเอง
Python มีข้อยกเว้นในตัวจำนวนหนึ่งที่ส่งข้อผิดพลาดเมื่อใดก็ตามที่มีสิ่งผิดปกติในโปรแกรม อย่างไรก็ตาม ผู้ใช้จำเป็นต้องสร้างข้อยกเว้นที่กำหนดเองในกรณีที่มีวัตถุประสงค์เพื่อให้บริการ
สามารถสร้างคลาสใหม่เพื่อกำหนดข้อยกเว้นที่กำหนดเองได้ ไม่ว่าทางตรงหรือทางอ้อม คลาสเหล่านี้ต้องได้รับมาจากคลาสของข้อยกเว้นในตัว
คลาส CustomError ที่ผู้ใช้กำหนดเองถูกสร้างขึ้นซึ่งสืบทอดมาจากคลาส Exception เช่นเดียวกับข้อยกเว้นอื่นๆ ข้อยกเว้นเหล่านี้ก็ถูกหยิบยกขึ้นมาโดยใช้ 'raise' พร้อมข้อความแสดงข้อผิดพลาดที่เป็นทางเลือก
ข้อยกเว้นที่ผู้ใช้กำหนดควรอยู่ในไฟล์แยกต่างหากเมื่อใดก็ตามที่มีการพัฒนาโปรแกรมหลามขนาดใหญ่ โดยทั่วไปแล้วจะเป็นแนวปฏิบัติที่ดีในการทำเช่นนี้และตามด้วยโมดูลมาตรฐานส่วนใหญ่ที่มีการกำหนดข้อยกเว้นแยกกันเป็น error.py หรือ exceptions.py
ข้อ ยกเว้นที่กำหนดเองของ python นั้นเรียบง่ายและเนื่องจากคลาสปกติใช้ทุกอย่างที่พวกเขาปฏิบัติตามเหมือนกัน
ไวยากรณ์และตัวอย่าง
ให้เราพิจารณาตัวแปรสองตัวคือ a และ b อินพุตของตัวแปรถูกนำมาจากผู้ใช้และทำการหารตัวเลข ตอนนี้ ถ้าตัวส่วนป้อนโดยผู้ใช้เป็นศูนย์
สำหรับการจัดการข้อยกเว้นเหล่านี้ สามารถเพิ่มบล็อกการยกเว้นได้ลงในโปรแกรม สำหรับรหัสประเภทใดก็ตามที่นำไปสู่การสงสัยว่ามีการโยนข้อยกเว้น ควรวางไว้ในกลุ่ม try ของคำสั่ง
ไวยากรณ์ของบล็อกลอง
พยายาม:
#รหัส
ยกเว้นข้อยกเว้น 1:
#รหัส
ยกเว้นข้อยกเว้น 2:
#รหัส
#รหัส
มันแสดงการใช้คำสั่ง try-except ที่โค้ดถูกวางไว้ในบล็อก try และได้รับการดำเนินการเมื่อไม่มีข้อยกเว้นในโค้ด
ไวยากรณ์ของคำสั่ง else ด้วย try-except
พยายาม
#ลองงบ
ยกเว้นข้อยกเว้น1
#รหัส
อื่น
#รันโค้ดเมื่อไม่มีข้อยกเว้น
จุดสำคัญบางประการ:
- ข้อยกเว้นไม่ได้ถูกระบุผ่านคำสั่งข้อยกเว้นในหลาม
- สามารถประกาศข้อยกเว้นได้หลายข้อในโค้ดโดยใช้บล็อกการลอง เนื่องจากอาจมีข้อความสั่งจำนวนมากภายในบล็อกการลองที่อาจมีข้อยกเว้นประเภทต่างๆ
- บล็อกอื่นสามารถระบุได้ด้วยบล็อกการลองที่ได้รับการดำเนินการเมื่อไม่มีข้อยกเว้นเกิดขึ้นจากบล็อกการลอง
- บล็อกอื่นควรมีข้อความสั่งที่ไม่รับผิดชอบต่อการโยนข้อยกเว้น
อ่านเพิ่มเติม: เหตุผลหลักว่าทำไม Python ถึงได้รับความนิยมจากนักพัฒนา
บทสรุป
ในบทความนี้ เราได้กล่าวถึงแนวคิดของการจัดการข้อยกเว้นใน python สั้น ๆ พร้อมตัวอย่างบางส่วน นอกเหนือจากข้อยกเว้นในตัวแล้ว ข้อ ยกเว้นแบบกำหนดเองของหลาม ยังถูกกำหนดไว้อย่างสั้นอีกด้วย ตอนนี้คุณสามารถทราบถึงความสำคัญของข้อยกเว้นและการ จัดการ ข้อ ยกเว้นใน python
หากคุณสนใจที่จะเรียนรู้เพิ่มเติมเกี่ยวกับภาษาไพ ธ อนและการนำไปใช้ในวิทยาศาสตร์ข้อมูล คุณสามารถดูหลักสูตร upGrad “Executive PG Program in Data Science” ได้
หลักสูตรออนไลน์ได้รับการออกแบบสำหรับมืออาชีพระดับเริ่มต้นทุกคนที่อยู่ในกลุ่มอายุ 21 ถึง 45 ปี ด้วยเซสชั่นสดมากกว่า 20+ รายการและความรู้เชิงปฏิบัติของเครื่องมือและภาษาโปรแกรมมากกว่า 14 ภาษา หลักสูตรนี้จะแนะนำคุณสู่ความสมบูรณ์แบบ คำถามใด ๆ สามารถส่งข้อความ ทีมงานของเราจะช่วยคุณ
Python มีข้อผิดพลาดกี่ประเภท?
มีข้อผิดพลาดเด่น 2 ประเภทใน Python- ข้อผิดพลาดทางไวยากรณ์และข้อยกเว้น ข้อผิดพลาดทางไวยากรณ์: ข้อผิดพลาดทางไวยากรณ์เกิดขึ้นเมื่อรหัสบรรทัดใด ๆ มีไวยากรณ์ที่ผิดพลาด นี่เป็นข้อผิดพลาดที่พบบ่อยที่สุดและตรวจพบระหว่างการแยกวิเคราะห์โปรแกรม ข้อผิดพลาดรวมถึงการไม่มีโอเปอเรเตอร์ การเยื้องที่ไม่เหมาะสม คีย์เวิร์ดสะกดผิด ทวิภาคที่หายไป การเว้นวงเล็บ และข้อผิดพลาดนาทีอื่นๆ ในไวยากรณ์ ข้อยกเว้น: ข้อยกเว้นคือข้อผิดพลาดที่ตรวจพบระหว่างการทำงานของโปรแกรม หลังจากที่โปรแกรมประสบความสำเร็จในการทดสอบไวยากรณ์ โปรแกรมจะต้องผ่านการตรวจสอบข้อผิดพลาดทางตรรกะ Python มีข้อยกเว้นในตัวมากมาย คุณยังสามารถสร้างข้อยกเว้นที่ผู้ใช้กำหนดเองได้
อะไรคือความแตกต่างที่สำคัญระหว่างข้อผิดพลาดทางไวยากรณ์และข้อยกเว้น?
ข้อผิดพลาดทางไวยากรณ์เกิดขึ้นเมื่อรหัสหรือบรรทัดของรหัสผิดทางไวยากรณ์ เมื่อเกิดข้อผิดพลาดทางไวยากรณ์ในโค้ด โปรแกรมจะยุติการทำงาน ข้อผิดพลาดทางไวยากรณ์อาจเกิดขึ้นโดยขาดเครื่องหมายทวิภาคหรือแม้แต่การสะกดคำสำคัญผิดเช่นกัน
อย่างไรก็ตาม ข้อยกเว้นค่อนข้างแตกต่างกัน ข้อยกเว้นถือได้ว่าเป็นความผิดปกติที่ขัดขวางการไหลของโปรแกรม แม้ว่าโปรแกรมจะถูกต้องตามหลักไวยากรณ์ ข้อยกเว้นก็อาจเกิดขึ้นได้ ไม่เหมือนกับข้อผิดพลาด โค้ดรันจนถึงบรรทัดที่เกิดข้อยกเว้น
บทบาทของคีย์เวิร์ดเพิ่มใน Python คืออะไร?
คีย์เวิร์ดเพิ่มขึ้นใช้สำหรับการเพิ่มข้อยกเว้นใน Python นอกจากนี้ยังสามารถระบุประเภทของข้อผิดพลาดได้ และคุณยังสามารถเพิ่มข้อความที่จะแสดงในขณะที่เพิ่มข้อยกเว้นได้อีกด้วย มันมีประโยชน์มากเมื่อคุณต้องการตรวจสอบรหัสของคุณสำหรับอินพุต