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

จะใช้ข้อยกเว้นที่ผู้ใช้กำหนดใน Python ได้อย่างไร?


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

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

มาดูตัวอย่างกัน

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

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


#Python user-defined exceptions
class CustomException(Exception):
"""Base class for other exceptions"""
pass
class PrecedingLetterError(CustomException):
"""Raised when the entered alphabet is smaller than the actual one"""
pass
class SucceedingLetterError(CustomException):
"""Raised when the entered alphabet is larger than the actual one"""
pass
# we need to guess this alphabet till we get it right
alphabet = 'k'
while True:
try:
foo = raw_input ( "Enter an alphabet: " )
if foo < alphabet:
raise PrecedingLetterError
elif foo > alphabet:
raise SucceedingLetterError
break
except PrecedingLetterError:
print("The entered alphabet is preceding one, try again!")
print('')
except SucceedingLetterError:
print("The entered alphabet is succeeding one, try again!")
print('')
print("Congratulations! You guessed it correctly.")