Computer >> Máy Tính >  >> Lập trình >> Python

Các lớp cơ sở ngoại lệ trong Python

Giống như các ngôn ngữ cấp cao khác, python cũng có một số ngoại lệ. Khi một vấn đề xảy ra, nó sẽ tạo ra một ngoại lệ. Có nhiều loại ngoại lệ khác nhau như ZeroDivisionError, AssertionError v.v ... Tất cả các lớp ngoại lệ đều bắt nguồn từ lớp BaseException.

Mã có thể chạy được xây dựng trong các ngoại lệ hoặc chúng tôi cũng có thể nâng cao các ngoại lệ này trong mã. Người dùng có thể lấy ngoại lệ của riêng họ từ Ngoại lệ hoặc từ bất kỳ lớp con nào khác của Exception lớp học.

BaseException là lớp cơ sở của tất cả các ngoại lệ khác. Các lớp do người dùng định nghĩa không thể được dẫn xuất trực tiếp từ lớp này, để tạo ra lớp do người dùng xác định, chúng ta cần sử dụng lớp Ngoại lệ.

Cấu trúc phân cấp ngoại lệ trong Python giống như bên dưới.

  • BaseException
  • Ngoại lệ
    • ArithmeticError
      • FloatingPointError
      • OverflowError
      • ZeroDivisionError
    • AssertionError
    • AttributeError
    • BufferError
    • EOFError
    • ImportError
      • ModuleNotFoundError
    • LookupError
      • IndexError
      • KeyError
    • MemoryError
    • NameError
      • UnboundLocalError
    • OSError
      • BlockingIOError
      • ChildProcessError
      • Lỗi kết nối
        • BrokenPipeError
        • ConnectionAbortedError
        • ConnectionRefusedError
        • ConnectionResetError
    • FileExistsError
    • FileNotFoundError
    • Bị gián đoạnError
    • IsADirectoryError
    • NotADirectoryError
    • PermissionError
    • ProcessLookupError
    • TimeoutError
  • ReferenceError
  • RuntimeError
    • NotImplementedError
    • RecursionError
  • StopIteration
  • StopAsyncIteration
  • SyntaxError
    • Lỗi thụt lề
      • TabError
  • SystemError
  • TypeError
  • ValueError
    • UnicodeError
      • UnicodeDecodeError
      • UnicodeEncodeError
      • UnicodeTranslateError
  • Cảnh báo
    • BytesWarning
    • DeprecationWarning
    • Cảnh báo tương lai
    • Cảnh báo nhập khẩu
    • PendingDeprecationWarning
    • Cảnh báo tài nguyên
    • RuntimeWarning
    • Cảnh báo cú pháp
    • UnicodeWarning
    • Cảnh báo Người dùng
  • GeneratorExit
  • Bàn phím ngắt
  • SystemExit

Vấn đề - Trong vấn đề này có một tầng lớp nhân viên. Điều kiện là, độ tuổi của nhân viên phải lớn hơn 18.

Chúng ta nên tạo một lớp ngoại lệ do người dùng xác định, là lớp con của lớp Exception.

Mã mẫu

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))

Đầu ra

The name of the employee: Subhas, Age: 25 Years
Error OccurredThe age must be greater than 18 years