Потому что RuntimeExceptions являются подклассами класса Exception.Следовательно, компилятор не может определить, генерирует ли какой-либо код какое-либо исключение времени выполнения, поскольку они могут быть сгенерированы jvm.С другой стороны, должны быть объявлены проверенные исключения, которые генерируются каким-либо методом, чтобы компилятор знал, какие исключения могут быть выброшены, и может определять ненужные блоки перехвата.