Лекция https://javarush.com/quests/lectures/questsyntax.level09.lecture04 Что означает нижеприведенная фраза? Наверное что если есть вероятность того что метод выбрасывает исключения программист должен указать, а не то что метод выбрасывает? Или я неправильно понял? — Если в методе выбрасываются (возникают) исключения ClassNotFoundException и FileNotFoundException, программист обязан указать их в сигнатуре метода (в заголовке метода). Это checked исключения. Вот как это обычно выглядит:
Примеры проверяемых (checked) исключений
public static void method1() throws ClassNotFoundException, FileNotFoundException

public static void main() throws IOException

public static void main() //не выбрасывает никаких исключений
И еще вопрос. Если не пробрасывать исключение выше по стеку, то разве программа не будет пытаться найти в вышележащих методах способ обработки исключений? т.е. если например мы написали метод в котором 100% возникнет исключение:
public static void method1() // но не написали throws IOException
у нас метод аварийно завершится и перейдет в метод из которого был вызван, допустим main, а в нем у нас есть блок:
public static void main() {
try
{
method1()
}
catch(IOException e)
{
///
}
Это будет работать?