Menu
CoddyTech

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):
	pass

FiveDivisionError 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.

challenge icon

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):
    pass

Tất cả bài học trong Xử lý ngoại lệ trong Python

Tự luyện tập: Trình biên dịch Python online