Mọi ngôn ngữ lập trình đều có cơ chế xử lý các ngoại lệ (exception) phát sinh trong quá trình thực thi chương trình. Trong Python, từ khóa assert được dùng để bắt lỗi và hiển thị thông báo lỗi do người lập trình tự định nghĩa thay vì thông báo lỗi hệ thống mặc định. Điều này giúp lập trình viên dễ dàng xác định vị trí và khắc phục lỗi khi nó xảy ra.
Sử dụng Assert
Trong ví dụ dưới đây, chúng ta dùng từ khóa assert để bắt lỗi chia cho số 0. Thông báo lỗi được viết theo ý muốn của lập trình viên.
Ví dụ
x = 4
y = 0
assert y != 0, "if you divide by 0 it gives error"
print("Given values are ", "x:", x, "y:", y)
print("\nmultiplication of x and y is", x * y)
print("\ndivision of x and y is", x / y)
Chạy đoạn mã trên cho kết quả sau:
Traceback (most recent call last):
File "scratch.py", line 3, in
assert y != 0, "if you divide by 0 it gives error"
AssertionError: if you divide by 0 it gives error
Không sử dụng Assert
Nếu không có câu lệnh assert, chúng ta sẽ nhận được lỗi do hệ thống sinh ra, có thể cần điều tra thêm để hiểu và xác định nguồn gốc của lỗi.
Ví dụ
x = 4
y = 0
# assert y != 0, "if you divide by 0 it gives error"
print("Given values are ", "x:", x, "y:", y)
print("\nmultiplication of x and y is", x * y)
print("\ndivision of x and y is", x / y)
Chạy đoạn mã trên cho kết quả sau:
multiplication of x and y is 0 Traceback (most recent call last): File "scratch.py", line 6, inprint("\ndivision of x and y is", x / y) ZeroDivisionError: division by zero