практики,ну вы поняли...дело вот в чем
https://pastebin.com/8WZ1EDPQ - ссылка на мой код)
Строка 26 метод methodThrowExceptions() в сигнатеру 3 исключения,я такой говорю что в процессе выполнения данного метода возможно одно из этих исключения,так что прошу тебя,программа,не накройся медным тазом,и если одно из этих исключений возникнет,просто пробрось его дальше,в надежде на то,что я его в дальшейшем обработаю в catch(); Я верно выразился?)
и дальше в самом теле метода пишу это масленное масло,да?
как бы если первое условие бросай первой исключение,если второе соответсвенное 2е исключение ну и про 3ее тоже самое,но б****ь зачем,я же в сигнатуре уже это прописал,это тупо показательно да????
я же все правильно понял?)
Чего? В сигнатуре метода не может быть исключений
Что такое стек знаете? Формулировка с ними если переписать будет похожа на правду
Что не понятного?
я же не просил отвечать вопросом на вопрос)
так, а каким образом из сигнатуры метода должно сгенирироваться тело?) Ну тип, я написал в сигнатуре, что метод выкидывает эти эксепшены, а вот в каких именно случаях он че выкидывает, не написал Возможно ты имел в виду, зачем в сигнатуре указывать эксепшены, которые может выкинуть метод? Ну по факту ты предупреждаешь чувака(или будущего себя), который будет использовать метод, что вот нужно обработать такие вот исключительные ситуации
Дак ты не можешь нормально описать вопрос
Когда ты в сигнатуре метода пишешь исключение, ты лишь предупреждаешь, что метод может выбросить это исключение. Это предупреждение не самой Джаве, а тому челу, который этот метод бдует использовать.
Почему сигнатура метода не может содержать исключения
throws is as much a part of the method API as the name and the parameters. Clients know if they call that method, they need to handle that exception--by simply throwing it also or by catching it and handling it (which may in fact entail the throwing of another exception wrapping the original). throws is addressed at compile time.
Потому что сигнатура метода -это его название и параметры, а возвращаемое значение и лист ексепшнов в это понятие не входят
Ты обязвааешь вызывающий код обработать данное исключение
что логично,т.к я не очень понимаю правильно ли я понимаю вообще что пишу
https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html
но прописав это программа как выдаст ошибку же не накроется?
Если нет обработчика - то накроется
Это если екзеп чекед
тоесть записью throws в сигне я даю программе пробежатся по стеку,если бы я это не прописал,программа бы накрылась сразу
Вот как раз в объявлении метода исключения входят однозначно, про сигнатуру согласен однако все равно залезть в java language specifications не помешает
В декларацию метода, да, в сигнатуру нет
а,хм,окей,не сигнатура,ну список исключений после сигнатуры,так правильно?)
Ты это делаешь, чтобы показать, что ты пробрасываешь эксепшены выше по стеку и снаружи их надо обработать
Откройте java language specifications и прочитайте это проще чем кажется
Throws тебя спасёт от падения программы только тогда, когда в нём описано чекед исключение, и при вызове метода не будет обработчика, т.к. программа просто нескопилится
но под капотом ничего не меняется получается,если я пропишу throws или же не пропишу??
Эм, а как можно вызвать метод который выбрасывает проверяемое исключение без его обработки?
Под капотом чего?
Выкинуть исключение без описания его в throws - можно
я понимаю что без catch() программа свернется,но вопрос в том на каком этапе это произойдет,сразу в этом методе,или же выше по стеку
Если исключение чекед - то на этапе компиляции. Если анчекед - то тогда, когда экзеп долетит по стеку до jvm
во)теперь понял)спс
Обсуждают сегодня