shield-halvedException Handling (Try/Except)

1. Giới thiệu

Exception (ngoại lệ) là lỗi xảy ra khi chương trình đang chạy. Nếu không xử lý, chương trình sẽ dừng đột ngột.

Exception Handling (xử lý ngoại lệ) giúp chương trình:

  • Không bị crash khi gặp lỗi

  • Xử lý lỗi một cách có kiểm soát

  • Hiển thị thông báo lỗi thân thiện với người dùng

2. Try/Except cơ bản

2.1 - Cú pháp

try:
    # Code có thể gây lỗi
    risky_operation()
except:
    # Code xử lý khi có lỗi
    print("Có lỗi xảy ra!")

2.2 - Ví dụ: Chia cho 0

2.3 - Ví dụ: Chuyển đổi kiểu dữ liệu

3. Bắt Exception cụ thể

3.1 - Tại sao cần bắt exception cụ thể?

Bắt exception cụ thể giúp:

  • Xử lý từng loại lỗi khác nhau

  • Code dễ đọc và maintain hơn

  • Debug dễ dàng hơn

3.2 - Cú pháp

3.3 - Ví dụ

4. Các loại Exception phổ biến

Exception
Khi nào xảy ra
Ví dụ

ValueError

Giá trị không đúng kiểu

int("abc")

ZeroDivisionError

Chia cho 0

10 / 0

TypeError

Sai kiểu dữ liệu

"hello" + 5

IndexError

Index vượt quá phạm vi

[1,2,3][10]

KeyError

Key không tồn tại

dict["key"]

FileNotFoundError

File không tồn tại

open("xyz.txt")

AttributeError

Thuộc tính không tồn tại

"hello".xyz()

NameError

Biến chưa được định nghĩa

print(x)

Ví dụ từng loại

5. Lấy thông tin lỗi với 'as'

Kết quả:

6. Bắt nhiều Exception

6.1 - Bắt từng loại riêng

6.2 - Bắt nhiều loại cùng lúc

6.3 - Bắt tất cả Exception (không khuyến khích)

7. Else và Finally

7.1 - Else: Chạy khi KHÔNG có lỗi

7.2 - Finally: Luôn luôn chạy

7.3 - Cấu trúc đầy đủ

8. Raise Exception

8.1 - Tự tạo Exception

8.2 - Re-raise Exception

9. Custom Exception

Tạo Exception riêng cho ứng dụng:

10. Ví dụ thực tế

Ví dụ 1: Validate input số

Ví dụ 2: Đọc file an toàn

Ví dụ 3: Truy cập dictionary an toàn

Ví dụ 4: Calculator với error handling

Ví dụ 5: Retry mechanism

11. Best Practices

1. Bắt exception cụ thể

2. Không bắt exception quá rộng

3. Log lỗi

4. Cleanup với finally

5. Fail fast

12. Context Manager (with statement)

Cách tốt nhất để xử lý tài nguyên (file, connection):

Bài giảng trên YouTube

Cập nhật sau

Last updated