Python ลองยกเว้นฟังก์ชันที่อธิบายด้วยตัวอย่าง

เผยแพร่แล้ว: 2021-11-22

การเขียนโปรแกรมมีบทบาทสำคัญในการทำงานหลายอย่างในยุคปัจจุบัน ไม่ว่าจะในด้านการวิจัยหรือด้านธุรกิจ แอปพลิเคชันของการเขียนโปรแกรมสามารถเห็นได้ทุกที่ Python เป็นภาษาโปรแกรมอย่างหนึ่งที่ใช้กันอย่างแพร่หลายในชีวิตประจำวันของผู้คนแทบทุกคน แน่นอนว่าสิ่งนี้ขึ้นอยู่กับโปรแกรมที่กำลังพัฒนาและดำเนินการ ไม่ว่าจะเป็นในแมชชีนเลิร์นนิง การพัฒนาเว็บ การพัฒนาซอฟต์แวร์ หรือโปรแกรมการศึกษาใดๆ ส่วนใหญ่มักเป็น Python ที่โปรแกรมเมอร์ใช้

อย่างไรก็ตาม สำหรับโปรแกรมใดๆ ที่ได้รับการออกแบบ มีโอกาสที่บางครั้งข้อผิดพลาดอาจเกี่ยวข้องกับโปรแกรมดังกล่าว ข้อผิดพลาดเหล่านี้สามารถกำหนดโดยผู้ใช้หรือค่าเริ่มต้นบางอย่างภายในโปรแกรมเอง โปรแกรมที่เขียนด้วยภาษาโปรแกรม python สามารถยุติการทำงานได้ทุกเมื่อที่ตรวจพบข้อผิดพลาดในโค้ด บทความนี้จะอธิบายข้อยกเว้นที่เกิดขึ้นในการเขียนโปรแกรม python และวิธีจัดการโดยใช้ฟังก์ชัน try andยกเว้น ในการเขียนโปรแกรมหลาม ข้อผิดพลาดสองประเภทส่วนใหญ่เกิดขึ้น ได้แก่ ข้อผิดพลาดทางไวยากรณ์และข้อยกเว้น

สารบัญ

ข้อยกเว้นและข้อผิดพลาดทางไวยากรณ์

รูปแบบข้อผิดพลาดหลามที่พบบ่อยที่สุดรูปแบบหนึ่งคือข้อผิดพลาดทางไวยากรณ์ สิ่งเหล่านี้เรียกว่าข้อผิดพลาดในการแยกวิเคราะห์ ลูกศรเล็กๆ ใช้เพื่อชี้ข้อผิดพลาดโดย parser

ข้อผิดพลาดอีกรูปแบบหนึ่งคือข้อยกเว้นใน python มีบางกรณีที่ไวยากรณ์ของโปรแกรมยังคงเหมือนเดิม แต่มีข้อผิดพลาดบางอย่างปรากฏขึ้นทุกครั้งที่โปรแกรมถูกเรียกใช้งาน ข้อผิดพลาดเหล่านี้ที่ตรวจพบเมื่อดำเนินการจะเรียกว่าข้อยกเว้น

ตัวอย่างของข้อผิดพลาดข้อยกเว้นแสดงอยู่ด้านล่าง:

1. แป้นพิมพ์ขัดจังหวะ:

ข้อผิดพลาดประเภทนี้เกิดขึ้นทุกครั้งที่การป้อนข้อมูลของผู้ใช้ถูกขัดจังหวะผ่านการกดปุ่มบนแป้นพิมพ์ที่ไม่ต้องการ ส่วนใหญ่ไม่จำเป็นต้องใช้คีย์และผู้ใช้กดผิดพลาด

2. IOError

บางครั้ง มีบางกรณีที่คุณไม่สามารถเปิดไฟล์ได้ และข้อยกเว้นเหล่านี้เกี่ยวข้องกับกรณีดังกล่าว

3. ImportError

เมื่อใดก็ตามที่โปรแกรม python ไม่พบโมดูล ข้อยกเว้นประเภทนี้จะเกิดขึ้น

4. EOFError:

โดยไม่อ่านข้อมูลใดๆ หากไฟล์ถูกโจมตี ข้อยกเว้นดังกล่าวจะเกิดขึ้น

5. ValueError

ข้อยกเว้นเกี่ยวข้องกับฟังก์ชันในตัว เมื่อใดก็ตามที่ฟังก์ชันดังกล่าวได้รับอาร์กิวเมนต์ที่ไม่ถูกต้อง ข้อยกเว้นเหล่านี้จะเกิดขึ้น

ข้อผิดพลาดทางไวยากรณ์เกิดขึ้นจากการตรวจหาคำสั่งที่ไม่ถูกต้องในโปรแกรมหลาม ต่อไปนี้คือตัวอย่างเพื่อแสดงการสร้างข้อผิดพลาดทางไวยากรณ์:

>>> พิมพ์( 0 / 0 ))

ไฟล์ “<stdin>” บรรทัดที่ 1

พิมพ์( 0 / 0 ))

^

SyntaxError: ไวยากรณ์ไม่ถูกต้อง

สามารถสังเกตได้ว่ามีลูกศรในโปรแกรมด้านบนและระบุตำแหน่งที่ parser ตรวจพบข้อผิดพลาด นอกจากนี้ยังมีวงเล็บสองอันในโค้ดซึ่งส่งผลให้มีรูปแบบที่ไม่ถูกต้อง ดังนั้นจึงมีข้อผิดพลาดทางไวยากรณ์ คุณสามารถลบวงเล็บเหลี่ยมและรันโค้ดได้อีกครั้ง

การเรียกใช้โปรแกรมหลังจากถอดวงเล็บออกจะแสดงข้อยกเว้น "ZeroDivisionError" เนื่องจากไวยากรณ์ของโค้ดถูกต้อง แต่ก็ยังมีข้อผิดพลาดอยู่ ข้อผิดพลาดประเภทนี้ที่เกิดจากรหัสไวยากรณ์ที่ถูกต้องเรียกว่าข้อยกเว้น

โปรแกรมจะส่งผลให้บรรทัด “ZeroDivisionError: การหารจำนวนเต็มหรือโมดูโลด้วยศูนย์” นี่เป็นบรรทัดสุดท้ายของโปรแกรม และแสดงข้อยกเว้นที่โปรแกรมสร้างขึ้น คุณสามารถสังเกตได้ว่า python ไม่เพียงแต่กล่าวถึงข้อผิดพลาดในการยกเว้นเท่านั้น แต่จะอธิบายและแสดงประเภทข้อยกเว้นแทน

การจัดการข้อยกเว้นผ่านการลองยกเว้นข้อ

แนวคิดในการจัดการข้อยกเว้นใน python เรียกว่าการจัดการข้อยกเว้น สามารถเขียนโปรแกรมที่สามารถจัดการกับข้อยกเว้นบางประเภทได้ ตัวอย่างของการจัดการข้อยกเว้นแสดงในภาพด้านล่าง:

รหัสด้านบนนำมา จาก https://docs.python.org/3/tutorial/errors.html

ในโปรแกรมข้างต้น ผู้ใช้จะถูกขอให้ป้อนจำนวนเต็มที่ถูกต้องเป็นอินพุต แต่แทนที่จะเป็นจำนวนเต็มที่ถูกต้อง มีการหยุดชะงักที่ฝั่งผู้ใช้ เมื่อใดก็ตามที่พบการหยุดชะงักของผู้ใช้ประเภทนี้ จะมีข้อยกเว้นประเภทหนึ่งเกิดขึ้นจากโปรแกรม python ซึ่งเป็นข้อยกเว้นของ “KeyboardInterrupt”

หลามพยายามยกเว้นบล็อกที่ใช้ในการจับและจัดการข้อยกเว้นที่เกิดขึ้นในโปรแกรมหลาม รหัสที่อยู่ด้านล่างคำสั่ง try จะดำเนินการเหมือนโปรแกรมปกติ ในเวลาเดียวกัน โปรแกรมที่มีอยู่ในคำสั่งยกเว้นคือการตอบสนองหลักของโปรแกรมต่อข้อยกเว้นรูปแบบใดๆ

จากตัวอย่างที่กล่าวถึงข้างต้นในหัวข้อ “ข้อยกเว้นและข้อผิดพลาดทางไวยากรณ์” สังเกตได้ว่าเกิดข้อผิดพลาดเมื่อใช้ไวยากรณ์ที่ไม่ถูกต้องในโค้ด อย่างไรก็ตาม หากไม่มีการจัดการข้อยกเว้นที่เหมาะสม โปรแกรมก็จะยุติลง ส่วนใหญ่เป็นหน้าที่ของข้อยกเว้นในการตัดสินใจว่าโปรแกรมควรตอบสนองอย่างไรในกรณีที่มีข้อยกเว้น

คำสั่งของ try และยกเว้น ใช้สำหรับจัดการข้อผิดพลาดใน python เมื่อใดก็ตามที่เกิดข้อผิดพลาดภายในโค้ดของ python คำสั่งเหล่านี้จะใช้สำหรับจัดการกับสิ่งเหล่านั้น มีโค้ดแยกสำหรับฟังก์ชันลองและฟังก์ชันยกเว้น รหัสภายในบล็อกการลองช่วยในการตรวจสอบโปรแกรมว่ามีข้อผิดพลาดหรือไม่ ดังนั้น เมื่อใดก็ตามที่ไม่มีข้อผิดพลาดในโปรแกรม โค้ดในบล็อกการลองจะถูกดำเนินการ รหัสภายในบล็อกยกเว้นจะทำงานเมื่อตรวจพบข้อผิดพลาดในบล็อกก่อนหน้าของรหัส มีไวยากรณ์เฉพาะสำหรับการเรียกใช้รุ่นทดลองและกลุ่มคำสั่งยกเว้นในภาษาการเขียนโปรแกรมหลาม

ไวยากรณ์ของฟังก์ชันลองยกเว้นใน Python:

พยายาม:

# รหัสบางส่วน

ยกเว้น :

# ดำเนินการหากมีข้อผิดพลาดในการ

#ลองบล็อค

การทำงานของงบทดลอง

ให้เราเข้าใจการทำงานของบล็อกทดลองก่อน ต่อไปนี้คือขั้นตอนสองสามขั้นตอนที่จะกำหนดการทำงานของบล็อกของโค้ดภายในบล็อกการลอง

  • ประโยค "ลอง" จะดำเนินการก่อน ซึ่งหมายความว่าโค้ดที่อยู่ระหว่างการลองและส่วนคำสั่งยกเว้นจะถูกดำเนินการก่อน
  • มีการตรวจสอบข้อยกเว้น ดังนั้น หากตรวจไม่พบข้อผิดพลาดหรือข้อยกเว้น จะมีการดำเนินการเพียงคำสั่งทดลองเท่านั้น ในเวลาเดียวกัน ประโยคยกเว้น จะหยุดทำงาน
  • ในกรณีที่มีข้อยกเว้น โปรแกรมจะข้ามส่วนคำสั่งทดลอง ในกรณีดังกล่าว จะมีการเรียกใช้ส่วนคำสั่งยกเว้น
  • อาจมีบางกรณีที่มีข้อยกเว้น แต่ส่วนคำสั่งยกเว้นไม่สามารถจัดการกับข้อยกเว้นนั้นได้ ในกรณีเช่นนี้ ข้อยกเว้นจะถูกส่งต่อไปยังคำสั่งของ try นอกบล็อก หากไม่มีการจัดการข้อยกเว้น โปรแกรมจะหยุดดำเนินการ
  • คำสั่งของ try สามารถมีได้มาก ยกเว้นอนุประโยค (มากกว่าหนึ่ง)

สมมติว่าโปรแกรม python พบข้อยกเว้นที่แตกต่างกัน จากนั้นเพื่อระบุตัวจัดการที่แตกต่างกัน หลายตัวยกเว้นบล็อกที่ใช้ในโปรแกรม python ในครั้งเดียว จะมีการดำเนินการตัวจัดการเพียงตัวเดียว แม้แต่ในโปรแกรมไพ ธ อน ข้อยกเว้นหลายรายการสามารถใช้เป็นวงเล็บในข้อยกเว้นได้

บางครั้งอาจมีคลาสอยู่ในคำสั่งยกเว้น

มีการใช้คีย์เวิร์ดใน python ซึ่งก็คือคำว่า “สุดท้าย” คีย์เวิร์ดถูกใช้หรือถูกดำเนินการหลังจากดำเนินการบล็อกการลองและยกเว้น ดังนั้น เมื่อใดก็ตามที่มีการยกเลิกคำสั่ง try เนื่องจากข้อยกเว้นหรือการยกเลิกตามปกติ จะมีการเรียกใช้ try block ในกรณีดังกล่าว

ยกข้อยกเว้น

หลังจากตรวจพบข้อยกเว้น ข้อยกเว้นจะถูกบังคับให้เกิดขึ้นผ่านการเพิ่มข้อยกเว้น ทำได้โดยใช้คำสั่ง "ยก" เป้าหมายที่สำคัญอย่างหนึ่งของคำแถลงการยกคือควรมีการยกข้อยกเว้น

ประเด็นสำคัญบางประการในการสรุปแนวคิดทั้งหมดคือ:

  • การดำเนินการของคำสั่งทดลองจะดำเนินต่อไปจนกว่าจะพบข้อยกเว้นแรก
  • มันอยู่ในบล็อกของ เว้นแต่ว่าโปรแกรมจะตัดสินใจว่าจะตอบสนองต่อข้อยกเว้นอย่างไร
  • สามารถคาดคะเนข้อยกเว้นได้หลายข้อ จากนั้นโปรแกรมจะแยกแยะวิธีการตอบสนองต่อข้อยกเว้นเหล่านั้น
  • สามารถโยนข้อยกเว้นได้ตลอดเวลาโดยใช้คำสั่ง "raise"
  • คำสั่ง "ยืนยัน" ช่วยให้โปรแกรมทราบว่าตรงตามเงื่อนไขหรือไม่และไม่ตรงตามเงื่อนไข ให้โยนข้อยกเว้นที่จำเป็น
  • ส่วนคำสั่ง else อนุญาตให้โปรแกรมเรียกใช้โค้ดเมื่อไม่มีข้อยกเว้นในประโยค "ลอง"
  • คำสั่ง "ในที่สุด" รันส่วนของโค้ดที่มีขึ้นเพื่อให้รันตลอดเวลาโดยไม่พบข้อยกเว้นใดๆ ก่อนหน้านี้

บทสรุป

บทความกล่าวถึงข้อผิดพลาดที่อาจเกิดขึ้นในโปรแกรมหลามโดยสังเขป และในกรณีของข้อผิดพลาดพิเศษบางอย่าง โปรแกรมจะแสดงข้อยกเว้น ต้องจัดการข้อยกเว้นเหล่านี้อย่างเหมาะสมเพื่อให้โปรแกรมทำงานได้อย่างราบรื่น การลองและยกเว้นใน python ช่วยให้สามารถจัดการข้อยกเว้นในโปรแกรมได้ รหัสภายใต้คำสั่ง "ลอง" ถูกดำเนินการ หากรันโค้ดไม่สำเร็จ โปรแกรมจะสิ้นสุดที่บรรทัดโค้ดที่สร้างข้อผิดพลาด จากนั้นโค้ด "ยกเว้น" จะทำงาน

รับปริญญาวิศวกรรมซอฟต์แวร์จากมหาวิทยาลัยชั้นนำของโลก รับโปรแกรม PG สำหรับผู้บริหาร โปรแกรมประกาศนียบัตรขั้นสูง หรือโปรแกรมปริญญาโท เพื่อติดตามอาชีพของคุณอย่างรวดเร็ว

บล็อกของ try อนุญาตให้ทดสอบบล็อกของโค้ดเพื่อหาข้อผิดพลาดได้ บล็อกยกเว้นอนุญาตให้โปรแกรมจัดการข้อยกเว้นหากมี

เป็นผู้เชี่ยวชาญในการพัฒนาซอฟต์แวร์

สมัครเลยตอนนี้สำหรับวิทยาศาสตรมหาบัณฑิตสาขาวิทยาการคอมพิวเตอร์จาก Liverpool John Moores