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).

7 bài · ~97 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), cơ chế try/catch/finally, throw, multi-catch Java 7+ và các anti-pattern cần tránh.

    ~12 phút
  2. 02

    Đọc stack trace và cause chain — giữ dấu vết lỗi qua mọi layer

    Cách đọc stack trace production, cơ chế fillInStackTrace của JVM, kỹ thuật giữ nguyên nhân gốc qua cause chain và suppressed exception.

    ~12 phút
  3. 03

    Exception table và cost của exception — throw rẻ, tạo đắt

    Exception table trong bytecode giúp JVM dispatch catch bằng table lookup, không tốn runtime check. Phân tích chi phí fillInStackTrace và tối ưu hot path.

    ~12 phút
  4. 04

    Checked vs Unchecked — cuộc tranh luận lớn trong thiết kế Java

    Phân biệt checked và unchecked exception, cơ chế compiler kiểm tra throws, xu hướng unchecked trong Java hiện đại và kỹ thuật uncheck cho Stream API.

    ~12 phút
  5. 05

    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.

    ~12 phút
  6. 06

    Custom exception — thiết kế phân cấp exception nghiệp vụ

    Khi nào tạo exception riêng, cấu trúc class mang context dữ liệu, phân cấp domain hierarchy và tích hợp Global Exception Handler trong ứng dụng.

    ~12 phút
  7. 07

    Mini-challenge: Bộ kiểm thực mượn ấn phẩm với custom exception

    Thực hành thiết kế bộ kiểm thực mượn sách thư viện, gom nhiều lỗi vào ValidationException và tích hợp xử lý lỗi tập trung.

    ~25 phút