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

Các ngoại lệ do người dùng xác định trong Python với các ví dụ

Python ném ra các lỗi và ngoại lệ bất cứ khi nào mã hoạt động bất thường và quá trình thực thi của nó dừng đột ngột. Python cung cấp cho chúng ta các công cụ để xử lý các tình huống như vậy nhờ sự trợ giúp của phương pháp xử lý ngoại lệ bằng cách sử dụng các câu lệnh try-exception. Một số ngoại lệ tiêu chuẩn được tìm thấy bao gồm ArithmeticError, AssertionError, AttributeError, ImportError, v.v.

Tạo lớp Ngoại lệ do người dùng xác định

Ở đây, chúng tôi đã tạo một lớp ngoại lệ mới, tức là User_Error. Các ngoại lệ cần được dẫn xuất từ ​​lớp Ngoại lệ có sẵn, trực tiếp hoặc gián tiếp. Hãy xem ví dụ đã cho có chứa phương thức tạo và phương thức hiển thị trong lớp đã cho.

Ví dụ

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

Đầu ra

A New Exception occured: User defined error

Tạo lớp Ngoại lệ do Người dùng xác định (Nhiều Kế thừa)

Các ngoại lệ của lớp có nguồn gốc được tạo ra khi một mô-đun xử lý nhiều lỗi khác nhau. Ở đây chúng tôi đã tạo một lớp cơ sở cho các ngoại lệ được xác định bởi mô-đun đó. Lớp cơ sở này được kế thừa bởi nhiều lớp khác nhau do người dùng định nghĩa để xử lý các loại lỗi khác nhau.

Ví dụ

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

Đầu ra

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

Tạo lớp Ngoại lệ do người dùng xác định (Ngoại lệ tiêu chuẩn)

Lỗi thời gian chạy là một lớp tích hợp được nâng lên bất cứ khi nào lỗi được tạo ra không thuộc các danh mục đã đề cập. Chương trình bên dưới giải thích cách sử dụng lỗi thời gian chạy làm lớp cơ sở và lỗi do người dùng xác định làm lớp dẫn xuất.

Ví dụ

# 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 ra

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

Kết luận

Trong bài viết này, chúng ta đã học cách khai báo và triển khai các ngoại lệ do người dùng xác định trong Python 3.x. Hoặc sớm hơn.