Ngoại lệ do người dùng định nghĩa
Bài học 12 trên 16 trong khóa học Xử lý ngoại lệ trong Python của Coddy.
Cách tạo ngoại lệ do người dùng định nghĩa?
Có ba bước:
1. Tạo lớp ngoại lệ bằng cách kế thừa lớp 'Exception'.
2. Ném ngoại lệ đã tạo khi có điều kiện cụ thể.
3. Xử lý ngoại lệ đó.
H. Giả sử mình muốn tránh việc chia cho năm trong chương trình. Mình muốn tạo một ngoại lệ nếu người dùng cố chia cho 5.
#Bước 1: Tạo lớp Exception
class FiveDivisionError(Exception):
passFiveDivisionError là ngoại lệ do chúng ta tạo ra. Bạn cũng có thể tạo hàm khởi tạo và thiết lập thông báo. Nhưng chúng ta sẽ thiết lập thông báo trong câu lệnh raise.
#step-2: phát sinh Exception khi gặp điều kiện cụ thể
try:
a = int(input("1st Number:"))
b = int(input("2nd Number:"))
if b == 5:
raise FiveDivisionError("Cannot divide by five")
div = a/b
print("Division:",div)Trong đoạn code trên, chúng ta ném FiveDivisionError nếu điều kiện b == 5 được thỏa mãn. Chúng ta dùng khối lệnh try để xử lý ngoại lệ.
#step-3: Xử lý ngoại lệ Exception bằng except
except Exception as obj:
print(obj)Đoạn code trên sẽ xử lý ngoại lệ đã xảy ra. Giờ đến lượt bạn giải thêm một bài toán.
Thử thách
DễTuổi sẽ được truyền vào hàm 'access' của bạn. Hoàn thiện hàm để in ra "Access Denied!" và dừng thực thi hàm nếu tuổi nhỏ hơn 18. Nếu không, hãy in ra "Session Created!". Chỉ sử dụng cách xử lý ngoại lệ. Tạo ngoại lệ tùy chỉnh 'AccessError'.
Tự làm thử
def access(age):
passTất cả bài học trong Xử lý ngoại lệ trong Python
4Tùy chỉnh và thực hành tốt
Tùy chỉnh thông báo lỗi truy vết3Ngoại lệ do người dùng định nghĩa
Các loại ngoại lệPhát sinh ngoại lệNgoại lệ do người dùng định nghĩaBài tập xử lý ngoại lệ 1Ví dụ xử lý ngoại lệ 2Ví dụ xử lý ngoại lệ 3Tự luyện tập: Trình biên dịch Python online