Adendo:
Pense que as Unchecked Exceptions são erros inesperados, geralmente erros do programador, como a famosa "Nullpointer Exception", lançada quando você tenta realizar uma operação em uma variável que está nula e deveria ter algum valor. Já as Checked Exceptions são sinalizadores de pontos do seu código que são propensos à falhas como se conectar a um banco de dados que pode ou não estar acessível pela sua aplicação.
De qualquer forma, esse mecanismo de tratamento de erros é a sua chance de pegar algo de errado acontecendo com a sua aplicação e tomar uma atitude corretiva. Nos blocos try-catch você também pode capturar exceção Unchecked, mas como a natureza desse tipo de exceção (unchecked) é algo inesperado geralmente indica que algum ponto do código não está suficientemente bem estruturado como o caso de uma variável nula na hora errada.
Se você não tratar as Unchecked Exceptions elas irão interromper o fluxo da aplicação caso não sejam tratadas.
Bônus: Não confunda Exceções (Exceptions) com Erros (Errors), existe a classe Exception e a classe Error. Quando uma exceção é lançada você consegue capturar isso em um bloco try-catch e tratar o problema, quando é lançado um Error, a JVM é interrompida e a sua aplicação "cai". Um exemplo de error é o famoso "There is insufficient memory for the Java Runtime Environment to continue", isso é um erro e quando ocorre a aplicação é finalizada pela JVM, não é possível tratar em blocos try-catch.