Computer >> 컴퓨터 >  >> 프로그램 작성 >> Python

Python 예외 기본 클래스

<시간/>

다른 고급 언어와 마찬가지로 파이썬에도 몇 가지 예외가 있습니다. 문제가 발생하면 예외가 발생합니다. ZeroDivisionError, AssertionError와 같은 다양한 예외가 있습니다. 등. 모든 예외 클래스는 BaseException 클래스에서 파생됩니다.

코드는 기본 제공 예외를 실행하거나 코드에서 이러한 예외를 발생시킬 수도 있습니다. 사용자는 예외에서 자신의 예외를 파생할 수 있습니다. 클래스 또는 Exception의 다른 자식 클래스에서 수업.

BaseException은 다른 모든 예외의 기본 클래스입니다. 사용자 정의 클래스는 이 클래스에서 직접 파생될 수 없으며 사용자 정의 클래스를 파생하려면 Exception 클래스를 사용해야 합니다.

Python Exception Hierarchy는 아래와 같습니다.

  • 기본 예외
  • 예외
    • 산술 오류
      • 부동 소수점 오류
      • 오버플로 오류
      • ZeroDivisionError
    • 어설션 오류
    • 속성 오류
    • 버퍼 오류
    • EOF 오류
    • 가져오기 오류
      • ModuleNotFoundError
    • 조회 오류
      • 색인 오류
      • 키 오류
    • 메모리 오류
    • 이름 오류
      • UnboundLocalError
    • OS 오류
      • IOError 차단
      • ChildProcessError
      • 연결 오류
        • 브로큰파이프 오류
        • 연결 중단 오류
        • 연결 거부 오류
        • 연결 재설정 오류
    • 파일 존재 오류
    • FileNotFoundError
    • 중단된 오류
    • IsADirectoryError
    • NotADirectoryError
    • 권한 오류
    • 프로세스 조회 오류
    • 시간 초과 오류
  • 참조 오류
  • 런타임 오류
    • NotImplementedError
    • 재귀 오류
  • 반복 중지
  • StopAsyncIteration
  • 구문 오류
    • 들여쓰기 오류
      • 탭 오류
  • 시스템 오류
  • 유형 오류
  • 값 오류
    • 유니코드 오류
      • UnicodeDecodeError
      • UnicodeEncodeError
      • UnicodeTranslateError
  • 경고
    • 바이트 경고
    • 지원 중단 경고
    • 미래 경고
    • 가져오기 경고
    • 사용 중단 경고
    • 리소스 경고
    • 런타임 경고
    • 구문 경고
    • 유니코드 경고
    • 사용자 경고
  • 제너레이터 종료
  • 키보드 인터럽트
  • 시스템 종료

문제 − 이 문제에는 직원 클래스가 있습니다. 조건은 직원의 연령이 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