Тёмный

Программирование на Java с нуля #11. Исключения. 

BoostBrain
Подписаться 20 тыс.
Просмотров 10 тыс.
50% 1

Программирование на Java для начинающих. Исключения, базовые понятия обработки ошибок.

Опубликовано:

 

24 сен 2024

Поделиться:

Ссылка:

Скачать:

Готовим ссылку...

Добавить в:

Мой плейлист
Посмотреть позже
Комментарии : 32   
@ViktorVdovichenko
@ViktorVdovichenko 4 года назад
академический урок! Почему бы не показать применение исключений на человеческих примерах, а не на method1, method2, exceptions, exampleException?! Можно же рассмотреть случай, когда программа требует ввести число, а пользователь вводит символьную строку (NumberFormatException). Выловить и обработать исключение в случае выхода за диапазон массива (ArrayIndexOutOfBoundsException). Лайк авансом.
@irinasapozhnikov9887
@irinasapozhnikov9887 6 лет назад
avtor super! eto luchshee prepodavanie java kotoroe mojno naiti v youtube. obyasnyaet obaldeno! spasibo ogromnoe, ya blagodarya vam silno prodvinulas.
@РомскийАндрей
@РомскийАндрей 5 лет назад
первый урок из всего курса из которого я абсолютно ни черта не понял и у меня ни черта не получилось из практики!
@BoostBrainCourse
@BoostBrainCourse 5 лет назад
Если вы конкретизируете, что не понятно и что не получилось, я либо подскажу, либо сниму более понятное видео
@alexv7137
@alexv7137 4 года назад
time frame -(временное ограничение) Исключения Теория 0-45 природа возникновения 2-25 Исключения Практика 4-33 Практика 6-00 Создаем класс Example с методом method1() который выбрасывает исключение при его выполнении. ( эмулируем событие когда у нас пошло что то не так). 10-08 Создание своего собственного исключения 13-30 Создаем в класс Example методом method2() который выбрасывает другое исключение NewException . Для того чтобы понять как и в каком порядке выбрасываются исключения.
@HowItWorks
@HowItWorks 5 лет назад
Видео не плохие, но если ставить скорость 1.5 то получается самое оно.
@alexgorodetki1650
@alexgorodetki1650 5 лет назад
+1 Я вообще на 2 поставил. Но надо признать, что это единственный минус.
@koldovalnya
@koldovalnya 6 лет назад
/0 Вот и весь пример.
@ИванДенисов-т6з
@ИванДенисов-т6з 4 года назад
Добрый день. Вам стоит в этот ролик добавить, что программа не падает, а продолжает работать в случае обработки возможного исключения. А в общем хорошее объяснение.
@ИринаИрина-ш5ы7р
Можно было бы для конкретности привести пример функции в которой бы-- на ноль делить нельзя- выходило бы исключение.Или при вводе цифр с клавиатуры выходило бы исключение при вводе букв(например)
@modjaid3907
@modjaid3907 6 лет назад
Ошибки в генетике уж точно)))
@АлексейЯ-б5л
@АлексейЯ-б5л 7 лет назад
Я правильно понимаю, что в методе method1 при возникновении ошибки в работе кода (переполнение буфера/деление на ноль/открытие несуществующего файла) создаётся объект Exception и работа кода прерывается? Почему тогда при обычном вызове метода1 срабатывет создание исключения? И можно поподробнее описать логику работы try catch? Спасибо.
@BoostBrainCourse
@BoostBrainCourse 7 лет назад
Не совсем так. В методе method1() исключение будет выбрасываться всегда, вне зависимости от ошибок, потому что мы бросаем это исключение принудительно. В реальной ситуации исключения выбрасываются не беспричинно, а при возникновении ошибки. Ну например при отсутствии файла или переполнении) А логика работы try/catch такова - если при исполнении кода внутри блока try возникает исключение, то ход программы приостанавливается в том месте, где произошла ошибка, производится проверка - есть ли блок catch, в котором указано исключение подходящего типа. Если там указано подходящее исключение, то начинает исполняться блок catch. Если неподходящее, то прерывается исполнение метода и исключение выбрасывается наружу, то есть в тот метод, который вызвал текущий метод, в котором мы находились. Там происходит точно такая же обработка исключения или выброс наружу по цепочке.
@АлексейЯ-б5л
@АлексейЯ-б5л 7 лет назад
А какие типы исключений бывают? Мы используем класс Exception - он родительский для всех типов исключений и он ловит все типы или есть другие классы? И у нас в примере блок try/catch один, ежели мы в catch используем тип исключения для работы с файлами, а у нас возникнет исключение по адресации памяти, то оно по нему не отработает, а программа вывалится в систему с ошибкой, так? П.С. Забыл ещё спросить: А как настроить выброс исключения только при возникновении оного, а не безусловно, как в примере?
@BoostBrainCourse
@BoostBrainCourse 7 лет назад
Очень правильный вопрос) Exception - родительский для всех исключений и catch(Exception e) будет перехватывать все исключения. Но есть одна тонкость - кроме Exception есть еще и Error. Они оба наследуются от Throwable. Но при этом перехватывать Error не нужно в 99% случаев, за исключением каких то стратегий перехвата вообще всего - например внутри фреймворков, серверов и т.п. Что касается исключения по адресации памяти(segfault?), так в Java его нет и быть не может(правда есть JNI, но это отдельный разговор)) Это было сделано специально, чтоб минимизировать количество ошибок.
@BoostBrainCourse
@BoostBrainCourse 7 лет назад
Типов исключений ОЧЕНЬ много, перечислять нет смысла, разве что посмотреть всех наследников класса Exception - например Idea может показать список. Что касается выброса исключения при возникновении исключения, то выбрасывать его не нужно, нужно просто не перехватывать) Если же хочется выбрасывать исключение, если при проверке каких то условий метод посчитал, что возникла ошибка, то нужно использовать конструкцию throw new ИмяИсключения(...);
@АлексейЯ-б5л
@АлексейЯ-б5л 7 лет назад
Я, наверное, не правильно выразился: не выбросить, а обработать исключение к примеру код почти из предыдущего урока: public void WriteFileException () { FileOutputStream output = new FileOutputStream(filename); String text =" blablabla"; byte [] byteText = text.getBytes; output.write(byteText); При вызове метода вывалится с ошибкой при содержимом filename несуществующее имя файла либо при аттрибутах существующего файла read-only? Как добавить обработчик, срабатывающий только при возникновении данного исключения, а не всегда вызываемый, как в примере?
@SDilnur
@SDilnur 6 лет назад
Спасибо Вам. Уроки хорошие, но, очень плохо видно картинку и текст - код, качество низкое.
@vitaliisodof1543
@vitaliisodof1543 6 лет назад
Проблема с вашей стороны, у меня например все отлично видно
@КритикЛатунский-х1т
Увы, чтобы понять эту тему - данного ролика недостаточно. Видео полезно тем, кто уже знает, что такое исключения. Были бы реальные примеры, чтобы понять - было бы здорово, а так(
@HowItWorks
@HowItWorks 5 лет назад
Так, а почему рантайм эксепшен не показан? Почему файнал не показан? Почему иерархия не показана? Почему не сказано что мы можем просто предупредить, но ничего в коде не кинуть? И про множественные исключения не рассказано, где они через запятую. И не сказано про кидание эксепшена в трай кечь конструкции. В общем тут есть где развернуться, но много не сказано.
@i3e1394
@i3e1394 3 года назад
Плохая привычка у автора именовать в стиле Examle examlpe, File file, String string и т.п. Начинающим сильно мешают такие имена
@ab23_ru
@ab23_ru 6 лет назад
Чувак не в обиду! НО примеры у тебя из области обучения глухонемых на разговорном китайском ...
@goleshov85
@goleshov85 6 лет назад
Отвратительные уроки, грубая теория без правильно поданной практики
Далее
DOTA 2 - ИНВОКЕР ИМБА!
24:17
Просмотров 244 тыс.
4 YEAR SIBLING DIFFERENCE! 😭 #shorts
00:11
Просмотров 13 млн