Xử Lý Lỗi Và Ngoại Lệ Với Try-Except Trong Python

Trong quá trình phát triển ứng dụng Python, việc chương trình gặp sự cố do dữ liệu đầu vào không hợp lệ hoặc tài nguyên hệ thống không sẵn sàng là điều khó tránh khỏi. Để giữ cho ứng dụng hoạt động liên tục mà không bị dừng đột ngột, việc xử lý ngoại lệ (Exception Handling) là một kỹ năng vô cùng quan trọng đối với mọi lập trình viên.

Xử lý lỗi và ngoại lệ trong Python với Try-Except

1. Ngoại Lệ (Exception) Là Gì?

Ngoại lệ là những lỗi phát sinh trong quá trình chương trình đang chạy (runtime error), làm ngắt quãng luồng thực thi bình thường của mã nguồn. Khác với lỗi cú pháp (SyntaxError) làm chương trình không thể khởi chạy, ngoại lệ xuất hiện khi cú pháp đúng nhưng hành động thực thi lại gặp sự cố (ví dụ: chia cho số 0, truy cập chỉ số nằm ngoài danh sách, hoặc nhập sai kiểu dữ liệu).

2. Cấu Trúc Khối Lệnh Try-Except Cơ Bản

Để bắt và xử lý ngoại lệ, Python cung cấp cấu trúc try-except. Đoạn mã có nguy cơ phát sinh lỗi sẽ được đặt trong khối try. Nếu ngoại lệ xảy ra, luồng điều khiển ngay lập tức chuyển sang khối except tương ứng để xử lý.

try: Kleva_number = int(input("Nhập một số nguyên: ")) result = 10 / Kleva_number print(f"Kết quả là: {result}") except ValueError: print("Lỗi: Bạn phải nhập một số nguyên hợp lệ!") except ZeroDivisionError: print("Lỗi: Không thể chia một số cho 0!")

Trong ví dụ trên, nếu người dùng nhập một chữ cái, lỗi ValueError sẽ bị chặn lại. Nếu nhập số 0, lỗi ZeroDivisionError sẽ được xử lý gọn gàng thay vì làm ứng dụng bị văng.

3. Kết Hợp Khối Else Và Finally

Bên cạnh try và except, Python còn hỗ trợ hai khối mở rộng là else và finally giúp quản lý luồng chương trình chặt chẽ hơn:

  • else: Chạy khi khối try hoàn thành thành công và không có bất kỳ ngoại lệ nào xảy ra.
  • finally: Luôn luôn được thi hành, bất kể có lỗi xảy ra hay không. Khối này thường được dùng để giải phóng tài nguyên (như đóng file, đóng kết nối cơ sở dữ liệu).
try: file = open("data.txt", "r") content = file.read() except FileNotFoundError: print("Lỗi: Không tìm thấy file dữ liệu!") else: print("Đọc file thành công!") print(content) finally: print("Hoàn tất quá trình xử lý file.")

4. Chủ Động Tự Tạo Ngoại Lệ Với Từ Khóa Raise

Đôi khi, bạn muốn chủ động tạo ra một ngoại lệ khi dữ liệu không đáp ứng quy tắc logic của ứng dụng. Bạn có thể sử dụng từ khóa raise để thực hiện điều này.

def check_age(age): if age < 0: raise ValueError("Tuổi không thể là số âm!") return f"Tuổi của bạn là: {age}" try: print(check_age(-5)) except ValueError as e: print(f"Đã xảy ra lỗi: {e}")

Kết Luận

Xử lý ngoại lệ với try-except giúp chương trình Python của bạn trở nên kiên cố, tin cậy và chuyên nghiệp hơn. Việc chủ động lường trước các lỗi phát sinh và bắt chúng đúng cách sẽ bảo vệ trải nghiệm của người dùng và giữ cho hệ thống luôn vận hành mượt mà.


Nguồn tham khảo


📚 Chuỗi bài: Lộ Trình Học Python Toàn Diện: Từ Con Số 0 Đến Ứng Dụng Thực Tế

Chuỗi 20 bài viết hướng dẫn lập trình Python theo lộ trình bài bản, giúp người mới bắt đầu nắm vững cú pháp nền tảng, tư duy lập trình hướng đối tượng, làm việc với dữ liệu và xây dựng ứng dụng thực tế.

  1. 1. Lộ Trình Python #1: Cài Đặt Môi Trường Và Viết Chương Trình Đầu Tiên
  2. 2. Lộ Trình Python #2: Biến Và Kiểu Dữ Liệu Cơ Bản Trong Python
  3. 3. Các Toán Tử Trong Python Và Cách Sử Dụng Chi Tiết
  4. 4. Cấu Trúc Điều Kiện If-Else Và Tư Duy Cấu Trúc Rẽ Nhánh Trong Python
  5. 5. Vòng Lặp For Và While Trong Python: Tối Ưu Hóa Việc Lặp Lại Công Việc
  6. 6. Xử Lý Chuỗi (String) Tối Ưu Trong Python
  7. 7. Làm Chủ Cấu Trúc Dữ Liệu List Và Tuple Trong Python
  8. 8. Quản Lý Dữ Liệu Với Dictionary Và Set Trong Python
  9. 9. Xây Dựng Hàm (Function) Và Quản Lý Phạm Vi Biến Trong Python
  10. 10. Xử Lý Lỗi Và Ngoại Lệ Với Try-Except Trong Python ← Bạn đang đọc
  11. 11. Thao Tác Đọc Và Ghi File Trong Python: Hướng Dẫn Chi Tiết Từ A Đến Z
  12. 12. Quản Lý Module Và Package Trong Python: Từ Chia Nhỏ Mã Nguồn Đến Sử Dụng Pip
  13. 13. Lập Trình Hướng Đối Tượng (OOP): Class Và Object Cơ Bản Trong Python
  14. 14. Bốn Trụ Cột Cơ Bản Của OOP Trong Python: Đóng Gói, Kế Thừa, Đa Hình Và Trừu Tượng Hóa
  15. 15. Xử Lý Ngày Tháng Và Thời Gian Với Module Datetime Trong Python
  16. 16. Làm Việc Với Dữ Liệu Định Dạng JSON Vượt Trội Trong Python
  17. 17. Cơ Bản Về Crawl Dữ Liệu Web Với BeautifulSoup
  18. 18. Xử Lý Dữ Liệu Bảng Cơ Bản Với Pandas
  19. 19. Xây Dựng RESTful API Đơn Giản Với Flask
  20. 20. Dự Án Cuối Khóa: Tự Động Hóa Công Việc Hàng Ngày Với Python

← Bài trước: Xây Dựng Hàm (Function) Và Quản Lý Phạm Vi Biến Trong Python Bài tiếp theo: Thao Tác Đọc Và Ghi File Trong Python: Hướng Dẫn Chi Tiết Từ A Đến Z →

Nhận xét