การจัดการข้อยกเว้นใน 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 นอกจากนี้ยังสามารถระบุประเภทของข้อผิดพลาดได้ และคุณยังสามารถเพิ่มข้อความที่จะแสดงในขณะที่เพิ่มข้อยกเว้นได้อีกด้วย มันมีประโยชน์มากเมื่อคุณต้องการตรวจสอบรหัสของคุณสำหรับอินพุต