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

Làm thế nào để triển khai ngoại lệ do người dùng xác định trong Python?


Chúng tôi tạo các ngoại lệ do người dùng xác định hoặc tùy chỉnh bằng cách tạo một lớp ngoại lệ mới trong Python. Ý tưởng là lấy lớp ngoại lệ tùy chỉnh từ lớp ngoại lệ. Hầu hết các ngoại lệ tích hợp đều sử dụng cùng một ý tưởng để thực thi các ngoại lệ của chúng.

Trong đoạn mã đã cho, bạn đã tạo một lớp ngoại lệ do người dùng xác định, "CustomException". Nó đang sử dụng lớp Ngoại lệ làm lớp cha. Do đó, lớp ngoại lệ mới do người dùng định nghĩa sẽ nâng cao các ngoại lệ như bất kỳ lớp ngoại lệ nào khác, tức là bằng cách gọi câu lệnh "raise" kèm theo thông báo lỗi tùy chọn.

Hãy lấy một ví dụ.

Trong ví dụ này, chúng tôi chỉ ra cách nâng cao một ngoại lệ do người dùng xác định và bắt lỗi trong một chương trình. Ngoài ra, trong mã mẫu, chúng tôi yêu cầu người dùng nhập đi nhập lại một bảng chữ cái cho đến khi anh ta chỉ nhập bảng chữ cái được lưu trữ.

Để được trợ giúp, chương trình cung cấp gợi ý cho người dùng để họ có thể tìm ra bảng chữ cái chính xác.


#Python user-defined exceptions
class CustomException(Exception):
"""Base class for other exceptions"""
pass
class PrecedingLetterError(CustomException):
"""Raised when the entered alphabet is smaller than the actual one"""
pass
class SucceedingLetterError(CustomException):
"""Raised when the entered alphabet is larger than the actual one"""
pass
# we need to guess this alphabet till we get it right
alphabet = 'k'
while True:
try:
foo = raw_input ( "Enter an alphabet: " )
if foo < alphabet:
raise PrecedingLetterError
elif foo > alphabet:
raise SucceedingLetterError
break
except PrecedingLetterError:
print("The entered alphabet is preceding one, try again!")
print('')
except SucceedingLetterError:
print("The entered alphabet is succeeding one, try again!")
print('')
print("Congratulations! You guessed it correctly.")