⚠️ This lecture introduces exceptions — Java's mechanism for handling abnormal situations without breaking the type system. It covers the motivation (why if statements and error codes aren't enough), throwing and declaring exceptions, the try-catch block, exception propagation through the call stack, multiple catch clauses, checked vs unchecked exceptions, and the finally block.

At-a-glance Checklist

The Problem: Why Do We Need Exceptions?

Error Handling Without Exceptions

Imagine you're working with a file — opening, reading, writing. Lots of things can go wrong: