[Video] Tìm hiểu exception + debug + package - lập trình Java Nâng Cao
🔹 1. Exception trong Java (Xử lý ngoại lệ)
✅ 1.1. Khái niệm
Exception là các lỗi xảy ra trong quá trình chạy chương trình (runtime), khiến chương trình dừng đột ngột nếu không được xử lý.
Java cung cấp cơ chế xử lý ngoại lệ (Exception Handling) giúp chương trình không bị crash và có thể khắc phục lỗi hợp lý.
🧩 1.2. Các loại Exception
| Loại | Mô tả | Ví dụ |
|---|---|---|
| Checked Exception | Được kiểm tra khi biên dịch (compile time). Bắt buộc xử lý bằng try-catch hoặc throws. | IOException, SQLException |
| Unchecked Exception | Xảy ra khi chạy (runtime), không bắt buộc phải xử lý. | NullPointerException, ArithmeticException |
| Error | Lỗi nghiêm trọng, không thể xử lý được. | OutOfMemoryError |
💻 1.3. Cấu trúc try – catch – finally
🟢 Kết quả:
🛠 1.4. Tạo Exception tùy chỉnh (Custom Exception)
🔹 2. Debug trong Java (Gỡ lỗi chương trình)
✅ 2.1. Khái niệm
Debug (gỡ lỗi) là quá trình phát hiện và khắc phục lỗi trong chương trình bằng cách theo dõi luồng thực thi, giá trị biến, điều kiện logic...
🧠 2.2. Mục đích của Debug
-
Tìm nguyên nhân gây lỗi (bug) trong code.
-
Quan sát giá trị biến khi chương trình chạy.
-
Kiểm tra luồng xử lý có đúng như mong đợi không.
💡 2.3. Các bước debug cơ bản (với IntelliJ IDEA / Eclipse)
-
Đặt breakpoint tại dòng cần dừng chương trình.
-
Chạy chương trình ở chế độ Debug (Shift + F9).
-
Dừng tại breakpoint → xem giá trị biến, stack trace.
-
Bước từng dòng (Step Over / Step Into) để xem luồng chạy.
-
Sửa lỗi nếu thấy giá trị không đúng hoặc logic sai.
💻 2.4. Ví dụ Debug:
👉 Khi debug, bạn có thể theo dõi giá trị total tăng dần từ 0 → 15.
🔹 3. Package trong Java (Đóng gói & tổ chức mã nguồn)
✅ 3.1. Khái niệm
Package là nhóm các lớp (class), interface, và sub-package được tổ chức theo cấu trúc thư mục.
Giúp quản lý mã nguồn dễ dàng, tránh trùng tên lớp, và tái sử dụng code hiệu quả.
🧱 3.2. Cấu trúc Package
Ví dụ:
💻 3.3. Khai báo Package
👉 Ở file khác, để sử dụng lớp này:
💡 3.4. Lợi ích của Package
-
Quản lý hàng trăm lớp trong dự án dễ dàng hơn.
-
Tránh xung đột tên lớp giữa các module.
-
Giúp đóng gói và bảo vệ mã (kết hợp với
access modifiers). -
Tạo cấu trúc chuẩn khi build và deploy (JAR/WAR).
🎓 Tổng kết kiến thức
| Chủ đề | Kỹ năng đạt được | Ứng dụng thực tế |
|---|---|---|
| Exception | Biết xử lý và tạo ngoại lệ tùy chỉnh | Giúp chương trình ổn định, dễ bảo trì |
| Debug | Biết gỡ lỗi, theo dõi luồng chạy, giá trị biến | Sửa lỗi nhanh, giảm thời gian test |
| Package | Tổ chức, tái sử dụng và đóng gói mã nguồn | Dự án chuyên nghiệp, dễ mở rộng |
🚀 Bài tập thực hành gợi ý
-
Viết chương trình chia hai số có xử lý ngoại lệ chia cho 0.
-
Viết class
LoginSystemcó ngoại lệInvalidUserException. -
Tạo project có package
model,service,controller. -
Sử dụng debug để tìm lỗi logic trong vòng lặp hoặc điều kiện
if.