blog.dopana

Back

Chào mừng em quay trở lại, lập trình viên dũng cảm! 🪖

Hãy tưởng tượng em đang đi xe đạp. Nếu vấp phải một hòn đá, em có thể bị ngã và trầy xước. Nhưng nếu em có đeo Mũ bảo hiểm và tấm bảo vệ đầu gối, em chỉ cần phủi bụi đứng dậy, cười xòa rồi lại tiếp tục đạp xe!

Trong Python, khi chú robot gặp phải chướng ngại vật (như một dòng lệnh bị sai dữ liệu), chú ta sẽ vấp ngã và lập tức “crash” (tắt ngúm chương trình và hiển thị những dòng chữ lỗi màu đỏ đáng sợ). Hôm nay, chúng ta sẽ học cách đội Mũ bảo hiểm cho robot bằng lệnh try (thử) và except (ngoại trừ)!

Tấm Lưới An Toàn (Cơ chế xử lý lỗi)#

Xử lý lỗi giống như việc bọc các dòng lệnh nguy hiểm trong một quả bóng bong bóng bảo vệ:

  1. try: Nói với robot: “Hãy thử làm việc này xem, nhưng cẩn thận nhé!”
  2. except: Nói với robot: “Nếu cậu bị vấp ngã và gặp lỗi này, đừng hoảng loạn và crash nhé! Thay vào đó, hãy làm theo kế hoạch dự phòng này.”
graph TD
    Start([Bắt đầu mã rủi ro]) --> Try{"try: Thực hiện hành động"}
    Try -->|Thành công| Done([Tiếp tục chạy! Không crash])
    Try -->|Vấp ngã - Lỗi| Except{"except: Đỡ bằng mũ bảo hiểm"}
    Except --> Backup["Chạy mã dự phòng (🩹 Cười và đứng dậy)"]
    Backup --> Done

Chuyển Đổi Quả Chuối (Lỗi ValueError)#

Em có nhớ khi chúng ta hỏi tuổi của người chơi và chuyển nó thành số nguyên không?

age = int("quả chuối")  # 💥 CRASH! Python không thể biến chữ "quả chuối" thành số.
python

Hãy bảo vệ đoạn mã này bằng một chiếc mũ bảo hiểm:

try:
    user_input = input("Nhập tuổi của em: ")
    age = int(user_input)
    print("Em đã " + str(age) + " tuổi! 🎉")
except ValueError:
    print("🩹 Ối! Đó không phải là một con số. Robot tự đỡ được rồi!")
python

Nếu em gõ chữ "mười" thay vì số 10, robot sẽ không bị sập nguồn nữa! Chú ta sẽ chỉ in ra lời cảnh báo thân thiện của chúng ta.

Phép Chia Cho Số Không (Lỗi ZeroDivisionError)#

Trong toán học, việc chia một số cho số không là bất khả thi. Nếu em cố tình làm vậy trong Python, chú robot sẽ hoảng loạn và sập nguồn:

try:
    cookies = 10
    kids = 0
    share = cookies / kids
except ZeroDivisionError:
    print("🌌 Cảnh báo: Không thể chia cho số 0! Vũ trụ sẽ sụp đổ mất!")
python

Thay vì crash chương trình, robot sẽ in ra cảnh báo và tiếp tục hoạt động bình nghiệp.

Tự Mình Trải Nghiệm! 🎮#

Hãy mở trình biên dịch Python và thử chế tạo một chiếc máy tính “chống sập nguồn” nhé:

  1. Yêu cầu người dùng nhập một số bất kỳ bằng lệnh input().
  2. Thử chia số 100 cho con số vừa nhập đó.
  3. Viết khối except ValueError để bắt lỗi khi người dùng nhập chữ viết.
  4. Viết khối except ZeroDivisionError để bắt lỗi khi người dùng nhập số 0.
  5. Chạy thử nghiệm bằng cách gõ chữ viết, gõ số 0, rồi gõ một con số thực sự!

Chúc mừng em! Em đã bổ sung thêm tính năng Chống Sập Nguồn (Crash Protection) vào hộp công cụ lập trình của mình. Các chương trình của em giờ đây đã mạnh mẽ và thân thiện hơn rất nhiều, sẵn sàng cho bạn bè chơi thử mà không sợ bị hỏng. Hãy tiếp tục phát huy nhé! 🪖💻

Tài liệu tham khảo#