เช่นเดียวกับภาษาระดับสูงอื่น ๆ มีข้อยกเว้นบางประการใน python ด้วย เมื่อเกิดปัญหาขึ้น จะทำให้เกิดข้อยกเว้น มีข้อยกเว้นประเภทต่างๆ เช่น ZeroDivisionError, AssertionError เป็นต้น คลาสข้อยกเว้นทั้งหมดได้มาจากคลาส BaseException
รหัสสามารถเรียกใช้ในข้อยกเว้น หรือเรายังสามารถยกข้อยกเว้นเหล่านี้ในรหัส ผู้ใช้สามารถได้รับข้อยกเว้นของตนเองจาก ข้อยกเว้น คลาส หรือจากคลาสย่อยอื่นๆ ของ ข้อยกเว้น ชั้นเรียน
BaseException เป็นคลาสพื้นฐานของข้อยกเว้นอื่นๆ ทั้งหมด ไม่สามารถรับคลาสที่ผู้ใช้กำหนดได้โดยตรงจากคลาสนี้ เพื่อให้ได้คลาสที่ผู้ใช้ท้าทาย เราจำเป็นต้องใช้คลาส Exception
ลำดับชั้นข้อยกเว้นของ Python มีลักษณะดังนี้
- BaseException
- ข้อยกเว้น
- ข้อผิดพลาดทางคณิตศาสตร์
- FloatingPointError
- ข้อผิดพลาดล้น
- ZeroDivisionError
- AssertionError
- ข้อผิดพลาดของแอตทริบิวต์
- ข้อผิดพลาดบัฟเฟอร์
- ข้อผิดพลาด EOF
- ImportError
- ModuleNotFoundError
- LookupError
- IndexError
- KeyError
- หน่วยความจำผิดพลาด
- NameError
- UnboundLocalError
- OSError
- BlockingIOError
- ChildProcessError
- ข้อผิดพลาดในการเชื่อมต่อ
- BrokenPipeError
- ConnectionAbortedError
- ConnectionRefusedError
- ConnectionResetError
- FileExistsError
- FileNotFoundError
- InterruptedError
- IsADirectoryError
- NotADirectoryError
- ข้อผิดพลาดในการอนุญาต
- ProcessLookupError
- ข้อผิดพลาดการหมดเวลา
- ข้อผิดพลาดทางคณิตศาสตร์
- ReferenceError
- RuntimeError
- NotImplementedError
- ข้อผิดพลาดการเรียกซ้ำ
- หยุดการวนซ้ำ
- StopAsyncIteration
- ข้อผิดพลาดทางไวยากรณ์
- IndentationError
- ข้อผิดพลาดของแท็บ
- IndentationError
- SystemError
- TypeError
- ValueError
- UnicodeError
- UnicodeDecodeError
- UnicodeEncodeError
- UnicodeTranslateError
- UnicodeError
- คำเตือน
- BytesWarning
- คำเตือนการเลิกใช้งาน
- คำเตือนในอนาคต
- คำเตือนการนำเข้า
- PendingDeprecationWarning
- คำเตือนทรัพยากร
- คำเตือนรันไทม์
- คำเตือนไวยากรณ์
- UnicodeWarning
- คำเตือนผู้ใช้
- GeneratorExit
- แป้นพิมพ์ขัดจังหวะ
- ออกจากระบบ
ปัญหา − ในปัญหานี้มีระดับของพนักงานอยู่ เงื่อนไขคือ อายุพนักงานต้องมากกว่า 18
เราควรสร้างคลาสข้อยกเว้นที่กำหนดโดยผู้ใช้ ซึ่งเป็นคลาสย่อยของคลาส Exception
โค้ดตัวอย่าง
class LowAgeError(Exception): def __init__(self): pass def __str__(self): return 'The age must be greater than 18 years' class Employee: def __init__(self, name, age): self.name = name if age < 18: raise LowAgeError else: self.age = age def display(self): print('The name of the employee: ' + self.name + ', Age: ' + str(self.age) +' Years') try: e1 = Employee('Subhas', 25) e1.display() e2 = Employee('Anupam', 12) e1.display() except LowAgeError as e: print('Error Occurred: ' + str(e))
ผลลัพธ์
The name of the employee: Subhas, Age: 25 Years Error OccurredThe age must be greater than 18 years