169 похожих чатов

Привет.Подсобите с исключениями,читать лекции конечно круто,но только дело доходит до

практики,ну вы поняли...дело вот в чем
https://pastebin.com/8WZ1EDPQ - ссылка на мой код)
Строка 26 метод methodThrowExceptions() в сигнатеру 3 исключения,я такой говорю что в процессе выполнения данного метода возможно одно из этих исключения,так что прошу тебя,программа,не накройся медным тазом,и если одно из этих исключений возникнет,просто пробрось его дальше,в надежде на то,что я его в дальшейшем обработаю в catch(); Я верно выразился?)
и дальше в самом теле метода пишу это масленное масло,да?
как бы если первое условие бросай первой исключение,если второе соответсвенное 2е исключение ну и про 3ее тоже самое,но б****ь зачем,я же в сигнатуре уже это прописал,это тупо показательно да????
я же все правильно понял?)

31 ответов

29 просмотров

Чего? В сигнатуре метода не может быть исключений

Что такое стек знаете? Формулировка с ними если переписать будет похожа на правду

Что не понятного?

Escapewithme-Шумбасов Автор вопроса

я же не просил отвечать вопросом на вопрос)

так, а каким образом из сигнатуры метода должно сгенирироваться тело?) Ну тип, я написал в сигнатуре, что метод выкидывает эти эксепшены, а вот в каких именно случаях он че выкидывает, не написал Возможно ты имел в виду, зачем в сигнатуре указывать эксепшены, которые может выкинуть метод? Ну по факту ты предупреждаешь чувака(или будущего себя), который будет использовать метод, что вот нужно обработать такие вот исключительные ситуации

Дак ты не можешь нормально описать вопрос

Когда ты в сигнатуре метода пишешь исключение, ты лишь предупреждаешь, что метод может выбросить это исключение. Это предупреждение не самой Джаве, а тому челу, который этот метод бдует использовать.

Почему сигнатура метода не может содержать исключения

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.

Потому что сигнатура метода -это его название и параметры, а возвращаемое значение и лист ексепшнов в это понятие не входят

Ты обязвааешь вызывающий код обработать данное исключение

Escapewithme-Шумбасов Автор вопроса

что логично,т.к я не очень понимаю правильно ли я понимаю вообще что пишу

https://docs.oracle.com/javase/tutorial/java/javaOO/methods.html

Escapewithme-Шумбасов Автор вопроса

но прописав это программа как выдаст ошибку же не накроется?

Если нет обработчика - то накроется

Это если екзеп чекед

Escapewithme-Шумбасов Автор вопроса

тоесть записью throws в сигне я даю программе пробежатся по стеку,если бы я это не прописал,программа бы накрылась сразу

Вот как раз в объявлении метода исключения входят однозначно, про сигнатуру согласен однако все равно залезть в java language specifications не помешает

В декларацию метода, да, в сигнатуру нет

Escapewithme-Шумбасов Автор вопроса

а,хм,окей,не сигнатура,ну список исключений после сигнатуры,так правильно?)

Ты это делаешь, чтобы показать, что ты пробрасываешь эксепшены выше по стеку и снаружи их надо обработать

Откройте java language specifications и прочитайте это проще чем кажется

Throws тебя спасёт от падения программы только тогда, когда в нём описано чекед исключение, и при вызове метода не будет обработчика, т.к. программа просто нескопилится

Escapewithme-Шумбасов Автор вопроса

но под капотом ничего не меняется получается,если я пропишу throws или же не пропишу??

Эм, а как можно вызвать метод который выбрасывает проверяемое исключение без его обработки?

Под капотом чего?

Выкинуть исключение без описания его в throws - можно

Escapewithme-Шумбасов Автор вопроса

я понимаю что без catch() программа свернется,но вопрос в том на каком этапе это произойдет,сразу в этом методе,или же выше по стеку

Если исключение чекед - то на этапе компиляции. Если анчекед - то тогда, когда экзеп долетит по стеку до jvm

Escapewithme-Шумбасов Автор вопроса

во)теперь понял)спс

Похожие вопросы

Обсуждают сегодня

Господа, а что сейчас вообще с рынком труда на делфи происходит? Какова ситуация?
Rꙮman Yankꙮvsky
29
А вообще, что может смущать в самой Julia - бы сказал, что нет единого стандартного подхода по многим моментам, поэтому многое выглядит как "хаки" и произвол. Короче говоря, с...
Viktor G.
2
30500 за редактор? )
Владимир
47
а через ESC-код ?
Alexey Kulakov
29
Чёт не понял, я ж правильной функцией воспользовался чтобы вывести отладочную информацию? но что-то она не ловится
notme
18
У меня есть функция где происходит это: write_bit(buffer, 1); write_bit(buffer, 0); write_bit(buffer, 1); write_bit(buffer, 1); write_bit(buffer, 1); w...
~
14
Добрый день! Скажите пожалуйста, а какие программы вы бы рекомендовали написать для того, чтобы научиться управлять памятью? Можно написать динамический массив, можно связный ...
Филипп
7
Недавно Google Project Zero нашёл багу в SQLite с помощью LLM, о чём достаточно было шумно в определённых интернетах, которые сопровождались рассказами, что скоро всех "ибешни...
Alex Sherbakov
5
Ребят в СИ можно реализовать ООП?
Николай
33
https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_h_common.erl#L174 https://github.com/erlang/otp/blob/OTP-27.1/lib/kernel/src/logger_olp.erl#L76 15 лет назад...
Maksim Lapshin
20
Карта сайта