This was an interview question. What is the main difference between unchecked exception and error as both are not caught? They will terminate the program.
RuntimeExceptions and Errors like OutOfMemoryError don't need to be catched and can be thrown until they reach main() which will terminate the application.
Other Exceptions cause an compile error if they are not catched or included in the throws list.