RuntimeException отличается от других классов исключений тем, что он относится к группе непроверяемых исключений (unchecked exceptions). 2
Другие классы исключений, образованные от класса Exception, называются проверяемыми исключениями (checked exceptions). 2 Как правило, это ошибки, возникшие по вине внешних обстоятельств или пользователя приложения. 4 Такие исключения должны обрабатываться в ходе работы программы, поэтому компилятор проверяет наличие обработчика или явного описания тех типов исключений, которые могут быть сгенерированы некоторым методом. 4
RuntimeException, в свою очередь, возникает из-за ошибок программирования, таких как неверное использование интерфейса приложения или неверное преобразование типов. 24 Например, к таким исключениям относится выход за пределы массива. 24 Такие ошибки могут быть в любом месте программы, поэтому компилятор не требует указывать RuntimeException в объявлении метода. 4
Таким образом, в отличие от других классов исключений, причиной возникновения RuntimeException является сам разработчик, и исключение не является одним из вариантов нормальной работы кода. 1