Sử Dụng try-except Để Bắt Lỗi Trong Python
Khi viết chương trình, có những lỗi không thể tránh khỏi, chẳng hạn như lỗi nhập sai dữ liệu, lỗi chia cho 0 hoặc lỗi đọc file không tồn tại. Để chương trình không bị dừng đột ngột, Python cung cấp câu lệnh try-except
giúp xử lý lỗi một cách an toàn.

1. Cấu Trúc try-except
Cơ Bản
try:
# Đoạn code có thể gây lỗi
risky_code()
except ExceptionType:
# Xử lý lỗi khi xảy ra
handle_error()
-
try
: Chứa đoạn code có thể gây lỗi. -
except
: Chạy khi có lỗi xảy ra. -
ExceptionType
: (Tuỳ chọn) Xác định loại lỗi cụ thể.
2. Ví Dụ try-except
Cơ Bản
Ví dụ 1: Xử lý lỗi chia cho 0 (ZeroDivisionError
)
try:
x = 10 / 0 # Lỗi chia cho 0
except ZeroDivisionError:
print("Lỗi: Không thể chia cho 0!")
Kết quả:
Lỗi: Không thể chia cho 0!
Ví dụ 2: Bắt lỗi nhập sai kiểu dữ liệu (ValueError
)
try:
num = int(input("Nhập một số: ")) # Nếu nhập chữ, sẽ lỗi
print("Số bạn nhập:", num)
except ValueError:
print("Lỗi: Vui lòng nhập một số hợp lệ!")
Kết quả:
Nhập một số: abc
Lỗi: Vui lòng nhập một số hợp lệ!
3. Bắt Nhiều Loại Lỗi
Có thể dùng nhiều except
để xử lý từng loại lỗi khác nhau.
try:
x = int(input("Nhập số: "))
y = 10 / x
except ValueError:
print("Lỗi: Bạn phải nhập một số nguyên!")
except ZeroDivisionError:
print("Lỗi: Không thể chia cho 0!")
Kết quả 1 (Nhập a
)
Lỗi: Bạn phải nhập một số nguyên!
Kết quả 2 (Nhập 0
)
Lỗi: Không thể chia cho 0!
4. Sử Dụng except Exception
Để Bắt Tất Cả Lỗi
Dùng except Exception
để bắt mọi lỗi mà không cần chỉ rõ từng loại lỗi.
try:
x = int(input("Nhập số: "))
y = 10 / x
except Exception as e:
print("Lỗi xảy ra:", e)
Kết quả (Nhập 0
)
Lỗi xảy ra: division by zero
Lưu ý: Không nên bắt tất cả lỗi trừ khi cần xử lý chung.
5. Sử Dụng else
và finally
-
else
: Chạy khi không có lỗi. -
finally
: Luôn chạy, dù có lỗi hay không.
try:
x = int(input("Nhập số: "))
y = 10 / x
except ZeroDivisionError:
print("Lỗi: Không thể chia cho 0!")
except ValueError:
print("Lỗi: Bạn phải nhập số nguyên!")
else:
print("Kết quả:", y) # Chỉ chạy nếu không có lỗi
finally:
print("Chương trình kết thúc.") # Luôn chạy
Kết quả (Nhập 2
)
Kết quả: 5.0
Chương trình kết thúc.
Kết quả (Nhập 0
)
Lỗi: Không thể chia cho 0!
Chương trình kết thúc.
6. Tóm Tắt
Cấu trúc | Ý nghĩa |
---|---|
try |
Chứa code có thể gây lỗi |
except |
Xử lý lỗi khi xảy ra |
except TypeError |
Bắt lỗi cụ thể |
except Exception as e |
Bắt mọi lỗi và lấy thông tin lỗi |
else |
Chạy khi không có lỗi |
finally |
Luôn chạy dù có lỗi hay không |
Việc sử dụng try-except
giúp chương trình chạy mượt mà hơn và dễ dàng xử lý lỗi khi làm việc với dữ liệu không lường trước được.

Với hơn 10 năm kinh nghiệm lập trình web và từng làm việc với nhiều framework, ngôn ngữ như PHP, JavaScript, React, jQuery, CSS, HTML, CakePHP, Laravel..., tôi hy vọng những kiến thức được chia sẻ tại đây sẽ hữu ích và thiết thực cho các bạn.
Xem thêm

Chào, tôi là Vũ. Đây là blog hướng dẫn lập trình của tôi.
Liên hệ công việc qua email dưới đây.
lhvuctu@gmail.com