Checked Exceptions extend Throwable class, but they do not extend
RuntimeException or Error classes. UncheckedException extend
RuntimeException class.
Checked Exceptions are checked at compile time in Java.
Unchecked Exceptions happen at Runtime, so they are not checked
at compile time.
IOException, SQLException etc. are examples of Checked
Exceptions. NullPointerException, ArithmeticException etc. are
examples of Unchecked Exceptions.
https://rollbar.com/blog/how-to-handle-checked-unchecked-exceptions-in-java/