Java обрабатывает ошибки с помощью try/catch/finally и уникально различает checked exceptions (должны быть объявлены или обработаны) от unchecked exceptions (runtime, не обязательны). Это различие является центральным для обработки ошибок в Java.
