Skip to main content

Posts

2026

Checked vs Unchecked Exceptions in Java — A Deep Dive

Every Java developer hits exceptions early. But the difference between checked and unchecked exceptions — and when to use which — trips people up for years. This post goes deep. The Exception Hierarchy # Everything starts from Throwable: Throwable ├── Error (unchecked — don't catch these) │ ├── OutOfMemoryError │ ├── StackOverflowError │ └── ... └── Exception (checked — must handle or declare) ├── IOException ├── SQLException ├── ... └── RuntimeException (unchecked — optional to handle) ├── NullPointerException ├── IllegalArgumentException ├── ArrayIndexOutOfBoundsException └── ... The rule is simple:

Hello World — Why This Blog Exists

Every developer has a blog they keep meaning to start. This is mine. I’ve been a backend engineer for a few years now, mostly working with Java and Spring Boot on large-scale systems. Along the way I’ve accumulated a lot of notes, debugging steps, architectural decisions, AWS gotchas, the occasional frontend struggle. Most of them live in handwritten notes, Notepad++, Obsidian, and the occasional PlantUML or Mermaid diagram. I’ve also shared some of these notes with colleagues on Teams, and sometimes on Slack.