Из иерархии исключений Java есть ветвь Error - их можно не обрабатывать, т. к. например если случится ошибка виртуальной машины и программа закроется, то до обработчика дело не дойдёт. А вот есть ещё одна ветвь uncheked исключений RuntimeException, объясните пожалуйста, почему её не обязательно обрабатывать, ведь например деление на ноль можно предугадать. обработать и программа продолжит свою нормальную работу? И вопрос номер два: Почему исключения типа IOException Относятся к проверяемым на этапе компиляции? - если пользователь программы может вводить путь файла во время выполнения программы. Не судите строго,, если написал где-то не так как есть на самом деле, пожалуйста исправьте!) Спасибо!.