Исключения бывают checked и unchecked. Checked требуется указывать в сигнатуре метода в разделе
throws
; перехватывать или добавлять в throws
в вызывающем его методе. Unchecked можно добавить, но не обязательно, перехватывать не обязательно даже если указана в throws
. 🔘
Throwable
– базовый класс для всего что может быть использовано с оператором throw
и в конструкции try-catch🔘
RuntimeException
– «нормальные» unchecked-исключения🔘
Error
– unchecked исключения, которые означают «серьезные проблемы» приложения. Не должны обрабатываться (хотя технически можно). Теоретически JVM может находиться в невалидном состоянии и не давать больше никаких гарантий🔘
Exception
(кроме RuntimeException
) – checked исключения