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

예제가 있는 Python의 사용자 정의 예외

<시간/>

Python은 코드가 비정상적으로 동작하고 실행이 갑자기 중지될 때마다 오류와 예외를 throw합니다. Python은 try-except 문을 사용하는 예외 처리 방법을 통해 이러한 시나리오를 처리할 수 있는 도구를 제공합니다. 발견되는 일부 표준 예외에는 ArithmeticError, AssertionError, AttributeError, ImportError 등이 있습니다.

사용자 정의 예외 클래스 생성

여기에서 새로운 예외 클래스, 즉 User_Error를 만들었습니다. 예외는 기본 제공 Exception 클래스에서 직접 또는 간접적으로 파생되어야 합니다. 주어진 클래스 내에서 생성자와 디스플레이 메소드를 포함하는 주어진 예제를 살펴봅시다.

예시

# class MyError is extended from super class Exception
class User_Error(Exception):
   # Constructor method
   def __init__(self, value):
      self.value = value
   # __str__ display function
   def __str__(self):
      return(repr(self.value))
try:
   raise(User_Error("User defined error"))
   # Value of Exception is stored in error
except User_Error as error:
   print('A New Exception occured:',error.value)

출력

A New Exception occured: User defined error

사용자 정의 예외 클래스 생성(다중 상속)

파생 클래스 예외는 단일 모듈이 여러 개의 고유한 오류를 처리할 때 생성됩니다. 여기에서 해당 모듈에 의해 정의된 예외에 대한 기본 클래스를 만들었습니다. 이 기본 클래스는 다양한 유형의 오류를 처리하기 위해 다양한 사용자 정의 클래스에 의해 상속됩니다.

예시

# define Python user-defined exceptions
class Error(Exception):
   """Base class for other exceptions"""
   pass
class Dividebyzero(Error):
   """Raised when the input value is zero"""
   pass
try:
   i_num = int(input("Enter a number: "))
   if i_num ==0:
      raise Dividebyzero
except Dividebyzero:
   print("Input value is zero, try again!")
   print()

출력

Enter a number: Input value is zero, try again!

사용자 정의 예외 클래스 생성(표준 예외)

런타임 오류는 생성된 오류가 언급된 범주에 속하지 않을 때마다 발생하는 내장 클래스입니다. 아래 프로그램은 런타임 에러를 베이스 클래스로, 사용자 정의 에러를 파생 클래스로 사용하는 방법을 설명합니다.

예시

# User defined error
class Usererror(RuntimeError):
   def __init__(self, arg):
      self.args = arg
try:
   raise Usererror("userError")
except Usererror as e:
   print (e.args)

출력

('u', 's', 'e', 'r', 'E', 'r', 'r', 'o', 'r')

결론

이 기사에서는 Python 3.x에서 사용자 정의 예외를 선언하고 구현하는 방법을 배웠습니다. 또는 그 이전.