To Check or Not to Check Your Exceptions

Why is exception handling such a hard feature to get right in a programming language? Any why is there a debate about checked exceptions in Java on Reddit? Let's figure out why exceptions are hard and how they could be better!