Не могу понять как работает проброс исключения в Джаве, для чего это нужно если он все равно не обрабатывается в main и программа не компилируется. Посмотрел много статей и роликов в ютюбе, но именно проброс не могу понять (throws FileNotFoundException, ClassNotFoundException), может я что то не так понимаю, если кому не составит труда объясните пожалуста
Есть три способа обработать ошибку: 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
Есть экстренные ситуации в программах, которые требуют обрабоки. Например, ты не можешь поделить на ноль. sout(5/0) закончится экстренной ситуацией и программа упадет. На это существуют различные методы, типа try, cath,finally,throws. Пример try{ System.out.println(5/0 } catch ( Arithmeticexception e ){ Sytem.out.println("Ooops"); } Есть блок finally,в который заносится код, который должен выполниться обязательно ( на ваше усмотрение). Throws - это для классов, пишется throws Exception и все исключения сразу обрабатываются.