Есть три способа обработать ошибку: 1. try catch 2. throw 3. throws Ну например! Программа выполняется и в какой-то момент идет не так, как нужно. И тебе нужно эту ситуацию как-то обработать! Есть масса классов, которые обрабатывают свою конкретную ошибку (Например, FileNotFoundException, ClassNotFoundException) Ты ее можешь обработать на месте с помощью try ...catch, а можешь в заголовке метода написать конструкцию с throws, и обработать ошибку с помощью try catch в методе, в происходит вызов. То есть конструкция throws сигнализирует, что в этом методе возможна ошибка, и ее нужно обработать в месте вызова с помощью try catch Это удобно, когда у тебя несколько методов выбрасывают одно и тоже исключение, которое требует одинаковой обработки Пример: 2 фотографии. Абсолютно одинаковые по смыслу, но разные по написанию//otvet.imgsmail.ru/download/10681346_42ccc677e36779e221f1730b276e5d51_120x120.png//otvet.imgsmail.ru/download/10681346_f717855d9d1cbae3e96cf6f6e34c1e6f_120x120.png