| Exception Basics |
Exception, Error vs Exception, Exception hierarchy, Checked vs Unchecked |
✅ |
|
|
|
| Try-Catch-Finally |
try block, catch block, multiple catch, finally block, nested try-catch |
✅ |
✅ |
|
|
| Throw & Throws |
throw keyword, throws keyword, difference, use cases |
✅ |
✅ |
|
|
| Custom Exceptions |
User-defined exceptions, Extending Exception class, Extending RuntimeException class |
|
✅ |
✅ |
|
| Exception Propagation |
Call stack propagation, rethrowing exceptions, handling vs declaring |
|
✅ |
✅ |
|
| Multi-Catch & Re-throw |
Multi-catch (Java 7+), Rethrowing exceptions, Exception wrapping |
|
✅ |
✅ |
|
| Try-with-Resources |
AutoCloseable, Suppressed exceptions, Resource management |
|
✅ |
✅ |
|
| Best Practices |
Checked vs unchecked choice, meaningful messages, logging, avoiding empty catch |
✅ |
✅ |
✅ |
✅ |
| Exception Hierarchy |
Throwable, Error, Exception, RuntimeException, Custom hierarchy |
✅ |
✅ |
✅ |
|
| Overriding & Exceptions |
Exception rules in overriding, narrower exceptions, throws clause differences |
|
✅ |
✅ |
|
| Performance Impacts |
Cost of exceptions, Alternatives to exceptions, Avoiding overuse |
|
|
✅ |
✅ |
| Streams |
Stream pipelines, lambda expressions, handling checked exceptions in lambdas |
|
|
✅ |
✅ |
| Framework-Specific |
Spring @ExceptionHandler, REST Exception Mappers, JUnit expected exceptions |
|
|
✅ |
✅ |
| Advanced Scenarios |
Exception translation, Exception chaining, Domain-specific exceptions, Retry strategies |
|
|
✅ |
✅ |
| System-Level Exceptions |
JVM errors, OutOfMemoryError, StackOverflowError, Fatal exceptions |
|
|
✅ |
✅ |
| Design Patterns & Exceptions |
Try-catch-finally pattern, Command pattern with exceptions, Checked-to-unchecked conversion |
|
|
✅ |
✅ |
| Logging & Monitoring |
Logging frameworks (SLF4J/Log4j), Correlation IDs, Centralized monitoring |
|
|
✅ |
✅ |
| Distributed Systems |
Exception handling across services, retries, circuit breakers, fallback strategies |
|
|
✅ |
✅ |
| Expert Practices |
Fail-fast vs fail-safe, Error boundaries, Designing exception-safe APIs |
|
|
✅ |
✅ |