Nội dung
Danh sách bài học
- 01~20 phút
try / catch / finally — cây Throwable và cơ chế throw
Cây Throwable (Error, Exception, RuntimeException), try/catch/finally, throw, multi-catch Java 7+. Anti-pattern nuốt exception. Phần cơ chế sâu (stack trace, cause chain, exception table) ở bài 2.
- 02~22 phút
Stack trace và cause chain — cơ chế bên dưới exception
Stack trace là gì, JVM build qua fillInStackTrace native thế nào, cost ~1-10μs. Exception table trong bytecode. Cause chain wrap exception qua layer. Suppressed exception. Tối ưu hot path.
- 03~16 phút
Checked vs Unchecked — cuộc tranh cãi kéo dài 20 năm
Phân biệt checked và unchecked exception, khi nào Java bắt khai throws, vì sao cộng đồng Java modern nghiêng về unchecked, và cách wrap checked thành unchecked đúng.
- 04~15 phút
try-with-resources — tự đóng resource không rò rỉ
Cú pháp try-with-resources từ Java 7, interface AutoCloseable, thứ tự close nhiều resource, suppressed exception, và vì sao pattern close-trong-finally cổ điển dễ sai.
- 05~16 phút
Custom exception — thiết kế hierarchy exception nghiệp vụ
Khi nào tạo exception riêng, cấu trúc class (constructor với cause, field context), hierarchy theo domain, global exception handler pattern, và cách chọn giữa exception và return value.
- 06~30 phút
Mini-challenge: Validator chain với exception
Bài thực hành khép lại Module 7 — xây validator kiểm tra User đăng ký, gom nhiều lỗi thành một ValidationException, dùng try-with-resources mô phỏng, và global handler.