OLHub

Exception Handling

try/catch/finally, checked vs unchecked, try-with-resources, custom exception, vì sao nuốt exception là anti-pattern, và exception ở cấp bytecode (exception table).

6 bài · ~119 phútMiễn phí

Nội dung

Danh sách bài học

  1. 01

    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.

    ~20 phút
  2. 02

    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.

    ~22 phút
  3. 03

    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.

    ~16 phút
  4. 04

    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.

    ~15 phút
  5. 05

    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.

    ~16 phút
  6. 06

    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.

    ~30 phút