Some exceptions in Java must be handled in the developer's code. Other exceptions can occur without any exception handling semantics at all. When an exception must be handled with try-and-catch ...
Even though exception handling is common and every introductory Java course covers it, I still don't think we really know how to do it well. It is almost as if the general concept is still evolving ...