Свой класс exception c++. Создание собственного класса исключений. С++ для начинающих. Урок

Поделиться
HTML-код
  • Опубликовано: 16 дек 2017
  • Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)
    С++ try catch. Обработка исключений С++. try catch что это. Изучение С++ для начинающих. Урок #120
    goo.gl/rLBe1i
    Генерация исключений с++ пример. throw c++ пример. Изучение С++ для начинающих. Урок #121
    goo.gl/gjnFnT
    Несколько блоков catch. Обработка исключений С++. Изучение С++ для начинающих. Урок #122
    goo.gl/KXgXiV
    Если вам нравятся мои уроки, вы хотите поддержать меня и развитие канала, то можете сделать это тут!=)
    www.donationalerts.ru/r/simple...
    или тут
    / simplecode
    Уроки по программированию
    Наша группа ВК smplcode
    Подписывайтесь на канал / @simplecodeit

Комментарии • 156

  • @SimpleCodeIT
    @SimpleCodeIT  6 лет назад +38

    *Cамый лучший способ сказать "спасибо" - поставить лайк и и поделиться уроком с друзьями. Это очень мотивирует создавать полезные уроки =)*

    • @ketzalkoatl2012
      @ketzalkoatl2012 5 лет назад

      вот опять та же ситуация: зачем добавлять к конструктору класса MyException, конструктор класса exception ?
      MyException(char*msg, int DataState) : *exception(msg)* ?
      Почему нельзя без конструктора базового класса?

    • @alexey104
      @alexey104 5 лет назад

      @@ketzalkoatl2012, вполне себе можно, никто не заставляет делать именно так. Просто базовый класс 'exception' уже содержит в себе метод 'what()', но можно и свой написать. Это просто один из примеров, реализации могут быть разными.

  • @kaliban12
    @kaliban12 Год назад +34

    В 2022 версии надо прописывать const char *msg, для конструктора, куда строку передаем. Иначе ругается.

    • @getup2134
      @getup2134 8 месяцев назад +2

      Спасибо тебе брат, помог!

    • @ruslandad365
      @ruslandad365 7 месяцев назад +1

      Спасибо за наводку)
      не все герои носят плащи)

    • @tema2976
      @tema2976 4 месяца назад

      ещё удобнее можно принять стрингом, а запустить в конструктор родительского класса через str.cstr()

    • @ngplug
      @ngplug 3 месяца назад

      Тогда придется переписывать what() ​@@tema2976

    • @user-eu7nt9hf2c
      @user-eu7nt9hf2c 2 месяца назад

      спасибо я бы много времени потратил на то как это решить если бы ты не подсказал! Спасибо еще раз

  • @vitalykatilov4747
    @vitalykatilov4747 2 года назад +16

    Всем привет. Выражаю огромную благодарность автору проекта, за то, что не бросил этот тяжкий труд на половине пути, как это многие делают, а желание наверное возникало не раз. Работаю в Ubuntu 20.04.3 LTS, среда разработки - Sublime Text. Код из урока не работает в моей системе. У кого та же проблема, смотрите код ниже. Точно не знаю, на сколько это правильно, но это работает.
    Это часть кода, где есть отличия, остальное без изменений. (первая половина урока).
    class MyException : public runtime_error
    {
    public:
    MyException(const char * msg) : runtime_error(msg) { }
    private:
    };
    void func(int value)
    {
    if(value < 0)
    {
    throw runtime_error("Число меньше 0.");
    }

    • @antoan3446
      @antoan3446 Год назад

      У меня тоже не хотел компилироваться, но как ты думаешь, в чем была проблема?
      Просто потому, что нужно было поставить const в конструкторе класса: MyException(const char* message). Без константы пишет что отсутствуют экземпляры класса.

  • @dimakovalskij3350
    @dimakovalskij3350 Год назад +8

    спасибо, сергей! ваши уроки актуальны даже в 2023 году! ранний опыт других яп даёт о себе знать, он очень помогает. раньше не понимал ООП вообще, и считал что для меня ООП тем более на С++ это смерть, но ваши уроки мне помогли. Большая часть курса - просмотрена, ещё немного)

    • @1mpalo362
      @1mpalo362 5 месяцев назад

      и как сейчас

    • @dimakovalskij3350
      @dimakovalskij3350 4 месяца назад

      @@1mpalo362 практически досмотрел этот курс ещё пол года назад, написал несколько своих програм на qt c++. Но началась учёба и программировать времени не очень осталось т.к. нужно готовиться к экзамен. Но курс - отличный, лучший из тех, что я встречал на ютубе

    • @1mpalo362
      @1mpalo362 4 месяца назад

      @@dimakovalskij3350 спасибо за информацию

  • @vadimturok59
    @vadimturok59 3 года назад +11

    Начитался кучи инфы на эту тему в инете, решил закрепить вашим видео, не пожалел, очень круто, спасибо автору!))

  • @Viktor_Kardakov
    @Viktor_Kardakov 11 месяцев назад +1

    Спасибо огромное за простое объяснение такой сложной темы!

  • @kl45gp
    @kl45gp 6 лет назад +6

    Отлично объясняешь , просто пять баллов! спасибо!

  • @pluto2656
    @pluto2656 6 лет назад +60

    все так просто, а преподы преподносят так будто "Шатл" в космос запускают)

    • @denden4455
      @denden4455 6 лет назад

      Pluto ажзвщвсщазза

    • @user-py6zc3pl4o
      @user-py6zc3pl4o 5 лет назад +12

      Вам хоть дают)) мы статические массивы 2 семестра гоняем))

  • @Ermine882
    @Ermine882 6 лет назад +11

    Спасибо за урок.

  • @segars9604
    @segars9604 7 месяцев назад

    Спасибо за бесценный труд!)

  • @SimpleCodeIT
    @SimpleCodeIT  6 лет назад +9

    #обработкаисключений #cвойклассexception #SimpleCode #урокипрограммирования

  • @KurpatovInstagram
    @KurpatovInstagram 6 лет назад +7

    спасибо!

  • @HugoBossKosta
    @HugoBossKosta 2 года назад +1

    спасибо за урок!

  • @Antonov_Ivan.
    @Antonov_Ivan. 5 месяцев назад

    Спасибо за урок!

  • @miroslavklyukovsky683
    @miroslavklyukovsky683 2 года назад +3

    Спасибо!!!

  • @mykhailomorhal2181
    @mykhailomorhal2181 6 лет назад +10

    Спасибо

  • @seventesla2743
    @seventesla2743 4 года назад +8

    Не знаю почему, но я всё прекрасно понимаю, для меня это странно...Спасибо за уроки

  • @artlinestudio6735
    @artlinestudio6735 2 года назад +5

    Большое спасибо! Просим еще уроки по С++! Пожалуйста!

  • @vladalu9794
    @vladalu9794 6 лет назад +4

    Спасибо большое за лучшие уроки!!

  • @Simba_the_cat
    @Simba_the_cat 5 лет назад +4

    Большое спасибо за урок!

  • @Tyr4noBuba
    @Tyr4noBuba Год назад

    Спасибо!

  • @angelpensive9145
    @angelpensive9145 5 лет назад +16

    В С++ вы не сможете вызвать делегирующий конструктор excepiton(const char*). Это будет работать только в VS.

    • @user_x138
      @user_x138 3 года назад +1

      Подскажите, почему?

    • @user-yn7gi6os8d
      @user-yn7gi6os8d 2 года назад +1

      @@user_x138 У exception нет конструктора для строкового значения, в VS используется расширение MSVC которое позволяет это делать. Чтобы передать строковое значение используют runtime_error или logic_error.

    • @gavyttop1341
      @gavyttop1341 2 года назад +2

      @@user-yn7gi6os8d ебанутся я после этих строк перестал понимать с++ а ведь всё было гладко)

    • @user-yn7gi6os8d
      @user-yn7gi6os8d 2 года назад

      @@gavyttop1341 Проще говоря, у exception в Virtual Studio прописан тот функционал, который позволяют использовать строчки в своем проекте. А в стандарте С++ нет, поэтому нужно извращаться иначе :)

    • @gavyttop1341
      @gavyttop1341 2 года назад

      @@user-yn7gi6os8d да кст я смотрел урок 2016 там всё if реализовано)))

  • @DD0S2
    @DD0S2 3 года назад +1

    спасибо

  • @aln9391
    @aln9391 6 лет назад +5

    Потратил слишком много на рецептологические изложения материала. Автор излагает суть. Хорошо бы текстовую версию материала для ускорения и расшерение круга рассматриваемых вопросов. Очень хорошо.

  • @leokruglikov6487
    @leokruglikov6487 4 года назад +4

    Это пиздец.... ты просто изменил мировозрение программирования! Спасибо тебе за все!

  • @Salavat1k
    @Salavat1k 5 лет назад +48

    Без const у меня не собирается:
    MyException(const char *msg,int DataState) : exception(msg)

    • @alexey104
      @alexey104 5 лет назад +4

      Это потому, что первый параметр - строка, а строка - это тип данных 'const char *'.

    • @TheWladberlin
      @TheWladberlin 4 года назад +2

      Аналогично. Спасибо за подсказку!

    • @VyachesR
      @VyachesR 3 года назад

      @Hemid Aliyev У вас тоже Visual Studio?

    • @user-no7ij9hn3d
      @user-no7ij9hn3d 3 года назад

      @Hemid Aliyev может быть из-за версий VS или внутренних настроек

    • @user-zt5hj1um5l
      @user-zt5hj1um5l 2 года назад +1

      У меня в кодблокс работает только вот с таким кодом MyException(string const &msg, int dataState):runtime_error(msg)//такая запись только для кодеблокс

  • @C2H5OHH
    @C2H5OHH 2 года назад +1

    Thank you for the lesson!

  • @bama2619
    @bama2619 2 года назад +1

    спасибо. Понятно как всегда.

  • @BrownAleks
    @BrownAleks 4 года назад

    Вот такой ещё конструктор имеется: exception(const char *const _Message, int) - Для чего там ещё один параметр int? И как его получить в catch?

  • @NikolayForostiy
    @NikolayForostiy 5 лет назад +2

    При передаче массива char myfex(char *msg , int y):exception(msg){ k = y;} возникла проблема с передачей сообщения throw msg из функции " отсутствуют экземпляры конструктора "myfex::myfex" соответствующие списку аргументов типы аргументов [const char [32],int] " возможно поменяли какие-то стандарты, но сейчас это работает при myfex(const char *msg , int y):exception(msg){ k = y;}

  • @ZnZ
    @ZnZ 6 лет назад +1

    Будут ли видео по Sokcet Client Server?

  • @user_x138
    @user_x138 3 года назад +6

    У меня объект ex не видит метод getDataState(). Хотя он находится модификаторе доступа public. А также время от времени подчеркивает базовый класс exception как несуществующий

    • @TGrod
      @TGrod 3 года назад +6

      Тоже столкнулся с такой ошибкой. У меня она пропала после того, как убрал const из catch, т.е: catch(MyException &ex). Не совсем понял, с чем это связано
      P.S. Всё решается довольно просто (я фиг знаю почему так, но всё же. Не помню такой темы с const и методами класса). Надо после метода GetDataState() написать const, то есть вот так: int GetDataState() const {return this->dataState;}
      Кстати + у автора у самого нет const перед MyException &ex (я только сейчас заметил), тогда всё решается первым способам (если вы просто написали случайно const, или не убирали его после того, как переименовали exception в My...), но для себя можно и вторым способом))

    • @Kokurorokuko
      @Kokurorokuko 3 года назад +4

      @@TGrod Спасибо за решение проблемы, но хотелось бы всё равно понять, почему она появляется.

    • @TGrod
      @TGrod 3 года назад +7

      @@Kokurorokuko я сейчас посмотрел и был очень удивлён тому, почему так получается. Оказывается у константного объекта мы можем вызывать ТОЛЬКО константные методы, иначе другие методы даже не будут проверяться на то, есть ли в нём способ изменения константного объекта или нет. Проще говоря надо писать константный метод (слово const после параметров), потому что у нас константный объект. На эту тему есть отличный урок на Ravesli. Называется "Классы и const в C++" 123 урок

  • @francisB83443
    @francisB83443 Год назад +3

    почему при вызове метода GetDataState() выводится ошибка "Объект содержит квалификаторы типа, несовместимые с элементом функции"

    • @madcrow
      @madcrow 6 месяцев назад

      убери const перед Myexception в catch

  • @VyachesR
    @VyachesR 3 года назад +2

    Урок просто &ex

  • @user-fi4pg8mc7q
    @user-fi4pg8mc7q 6 лет назад

    прерывания будете рассматривать? мне было бы очень интерестно посмотреть как можно организовать цикличную работу программы пока я ввожу значение какой то переменной через "cin>>"

  • @slimbdeful
    @slimbdeful 6 лет назад +1

    Подскажите, где в VS Вы нашли сочетание клавиш, чтобы комментировать не построчно, а вот так: /*что-то*/ ?

  • @user-rv9ss5ce7z
    @user-rv9ss5ce7z 5 лет назад +10

    еще в конструкторе надо писать const char * msg

    • @user-vt1qt3ub1q
      @user-vt1qt3ub1q 4 года назад +1

      Минут 30 смотрел на код и не понимал в чем прикол, спасибо тебе ))))!!!!!!

    • @user-jp8fr4lz4c
      @user-jp8fr4lz4c 2 года назад

      @@user-vt1qt3ub1q Я тоже не сразу въехал, но потом немного посидел, и сам догнал )

    • @colt5870
      @colt5870 Год назад +1

      лучший
      я залип пздц

  • @sagecat5696
    @sagecat5696 6 лет назад

    Здравствуйте, у меня вопрос.
    Смотрите, вот Вы в первом своём варианте описали конструктор класса MyException как: MyExсeption(char * msg) : exception(msg){}
    Почему (!) оно работает вместе с строкой типа sz, я имею ввиду, почему оно работает когда вы бросаете throw MyException("TEXT")
    Ведь строка которой вы объявляете конструктор является именно строкой, а не ссылкой на первый элемент массива типа char.
    Вы же в конструкторе в итоге принимаете не ссылку на объект типа char, а физически сам объект типа string.

    • @user-ur5kc8er8w
      @user-ur5kc8er8w 5 лет назад +5

      строка тут как константа со ссылкой на себя, а не объект стринг

  • @vitanli8353
    @vitanli8353 6 лет назад +1

    Можно вопрос? Скажите пожалуйста, на чём лучше писать GUI приложения только под windows? Я растерялся, очень много выбора. C++ builder, Qt creator, MFC, CLR, win32. Что лучше выбрать? возможно, и не из этого списка

    • @SimpleCodeIT
      @SimpleCodeIT  6 лет назад +2

      C# WinForms или VPF

    • @vitanli8353
      @vitanli8353 6 лет назад

      #SimpleCode но там же вроде нужен framework, а у он не у всех установлен и производительность ниже

    • @SimpleCodeIT
      @SimpleCodeIT  6 лет назад +1

      net framework стоит на любой винде, начиная с XP

    • @vitanli8353
      @vitanli8353 6 лет назад +1

      #SimpleCode спасибо, возможно попробую C#. а что из C++ посоветуете?

    • @vitanli8353
      @vitanli8353 6 лет назад

      SЌĬP クラス да, но для него, как и для C# требуется .net framework. а я как раз хотел чтобы программы могли работать без него

  • @edges_of_relief
    @edges_of_relief 2 года назад

    Здравствуйте, стараюсь понимать ваши уроки, но не очень понимаю функцию записи в 8:05 на 15 строчке, а именно приписку ::exception(msg), что данная запись делает? Подскажите пжлст:)

    • @gavyttop1341
      @gavyttop1341 2 года назад +1

      это наследование) чекай урок по нему)

    • @sleepyNovember_project
      @sleepyNovember_project 4 месяца назад

      Это потомок свалил ответственность на предка !

  • @antonsalamov5164
    @antonsalamov5164 4 месяца назад

    11:36 строчка 33 у автора, компилятор говорит что exeption не принимает строковый литерал. Возможно ли что поменялся стандарт?

  • @oljaolsa7261
    @oljaolsa7261 4 года назад

    throw Myexception("один", value); треба було додати ще один параметр))))))))

  • @justman7656
    @justman7656 Год назад

    Почему не присвоить значение полю dataState также в списке инициализации конструктора?

  • @ildaryakupov903
    @ildaryakupov903 2 года назад +1

    Почему обычный эксепшен в myexception не попадает ?

  • @user-vr1xw4ln7y
    @user-vr1xw4ln7y 2 года назад

    Вопрос, а почему в параметрах стоит указатель на тип char, а передаётся строка? Поидее же string должно быть, char же за символ единичный отвечает.

    • @user-mi2hp9zn1z
      @user-mi2hp9zn1z 2 года назад

      Строки задаются как массивы char, а массивы - указателями на элемент [0]. Т.е. char* a = "bla-bla" эквивалентно char* a = (const - от компилятора зависит) char[7] .
      String - это тип из STL, так что в самом C++ строки реализованы через данную пень-колоду(хотя это и очевидное требование низкого уровня абстракции этого языка).
      При том, заметьте, char* = const char писать вообще-то никак нельзя, так что компилятор в целом может начать ругаться на вас из-за собственной же реализации.

    • @sleepyNovember_project
      @sleepyNovember_project 4 месяца назад

      bruh

  • @user-ny4zk7gj7n
    @user-ny4zk7gj7n 2 месяца назад

    урок понял, но в Code::Blocks строка с конструктором не работает My_Exception( char *msg, int data_State): exception(msg), если изменить класс exception на logic_error всё работает за исключением Геттера

  • @user-rv9ss5ce7z
    @user-rv9ss5ce7z 5 лет назад +2

    Повторяя за вами поулчаю ошибку class MyException : public exception {}; - error C2504: exception: не определен базовый класс

    • @user-vq9ji5km8q
      @user-vq9ji5km8q 5 лет назад +1

      А ты подключил исключения через include ?

  • @pavelpolo9016
    @pavelpolo9016 11 месяцев назад

    А если создать в своем классе MyException поле text, то нет смысла наследоваться от базового exception? Если там всего одна функция what... В своей программе получается можно обойтись самописным классом?

    • @hdtrydyydyd2486
      @hdtrydyydyd2486 10 месяцев назад

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

    • @pavelpolo9016
      @pavelpolo9016 10 месяцев назад

      @@hdtrydyydyd2486 смысл, что в него можно добавить любой свой функционал. А не наследовать другой класс ради одной функции what()

    • @sleepyNovember_project
      @sleepyNovember_project 4 месяца назад

      @@pavelpolo9016 ну наверное базовый exception имеет смысл использовать только для стандартных функций и методов, которые кидают исключение в него
      Например если std::stoi использовать, если эта функция не сможет перевести строку в целочисленный тип данных, она бросает исключение, наверн как раз в класс std::exception
      Так что тут, либо ты используешь сам std::exception, либо наследуешь от него свой класс исключений, чтобы не пропустить исключение от того же stoi

  • @TheWladberlin
    @TheWladberlin 4 года назад +1

    А как после сообщения от exception организовать вторую, третью и т.д. try -попытку?

    • @melmenx
      @melmenx 3 года назад

      один из вариантов через цикл while(). Пока значение true выполняется цикл,
      bool check = true;
      while(check )
      {
      try
      {
      //код
      check = false; // если не выбросило исключение.
      }
      catch()
      {}
      }

    • @user-no7ij9hn3d
      @user-no7ij9hn3d 3 года назад

      Вариант метки, go to

  • @TheLjubin
    @TheLjubin 4 года назад +1

    Кто-то знает, как этот - char *msg - "вывести" в VinForms ?
    MessageBox::Show(ex.what()); - здесь просто - TRUE

  • @haskehaldir7870
    @haskehaldir7870 Год назад

    Странно. Вроде пишу то же самое. А когда задаю аргумент в конструктор класса MyException, компилятор сообщает что не может конвертировать char в MyException. Не понимаю как это исправить.
    Так выглядит мой класс.
    class MyException : public exception {
    public:
    MyException(char* msg) {
    cout

    • @user-jw5rc1ty4p
      @user-jw5rc1ty4p Год назад +1

      class MyExp :public exception
      {
      public:
      MyExp(const char *msg):exception(msg)
      {
      }

  • @Kopatych69
    @Kopatych69 3 года назад +1

    В Яве все эти проблемы решены.

  • @user-iz1tv9dp2y
    @user-iz1tv9dp2y Год назад

    Спасибо за работу! Слишком много прыжков по разрозненным кускам кода, хотя весь код вполне можно уместить на одном экране, общей картины не видно, воспроизвести код не получается - не хватает текстового варианта.

  • @sleepyNovember_project
    @sleepyNovember_project 4 месяца назад

    Если не поймал, то - аборт :D

  • @user-zq5zl8eq3z
    @user-zq5zl8eq3z 2 года назад +2

    С С++11 char* name не будет работать, надо использовать const то-есть, const char* name

    • @user-or1hy4xz8u
      @user-or1hy4xz8u 2 года назад

      а почему в уроке об этом ни слова??

    • @user-zq5zl8eq3z
      @user-zq5zl8eq3z 2 года назад +2

      @@user-or1hy4xz8u многие команды,компании и т.д. не переходят на последнии версии языка, так как стандарт не прижился или ещё что-то. Вообщем причины для того?что бы остаться на предыдущей версии есть. Возможно автор сидел на до 11 версии стандарта(см. причину выше)

    • @user-or1hy4xz8u
      @user-or1hy4xz8u 2 года назад

      @@user-zq5zl8eq3z ого, 11 версия!!! Это ж принималось 11 лет назад!! Какой там говорить об 17 или 20й ...

    • @annaborodina4804
      @annaborodina4804 Год назад

      спасибо :)

    • @princessmary5556
      @princessmary5556 Год назад

      @@user-or1hy4xz8u Потому что "урок" сделан неграмотным балбесом.

  • @johan.de.matan.
    @johan.de.matan. 5 лет назад

    Не хватает пояснения когда юзать, чтобы и не ставить где попало, и чтобы не пропускать где бы стоило эти блоки try-catch

    • @TheWladberlin
      @TheWladberlin 4 года назад +2

      Везде, где не уверен что не произойдет ошибки. Как правило, там где работа с файлами, там где диалог с пользователем и т.д.

  • @Viamsupervadetvadens
    @Viamsupervadetvadens 6 лет назад +3

    up

  • @sagecat5696
    @sagecat5696 6 лет назад +4

    Разве, я что-то не так написал?
    #include "stdafx.h"
    #include
    using namespace std;
    class MyException : public exception
    {
    public:
    MyException(char * msg) : exception(msg)
    {
    }
    };
    void Foo(int n)
    {
    if (n == 5) throw MyException("Текст"); //Ошибка!!! Текст не является элементом типа char* и не может быть
    cout

    • @LenTos1337
      @LenTos1337 6 лет назад +3

      только теперь с геттером какие-то проблемы

    • @Salavat1k
      @Salavat1k 5 лет назад +3

      напишите лучше так: MyException(const char * msg) : exception(msg)

    • @user-vx8rc5ob5x
      @user-vx8rc5ob5x 4 года назад +1

      @@Salavat1k Благодарочка за подсказку!!!

  • @user-hf6yc6bj3i
    @user-hf6yc6bj3i 10 месяцев назад

    Скопировал код , но выдаётся ошибка что нет экземпляра конструктора MyException...

    • @segars9604
      @segars9604 7 месяцев назад

      Там константы не хватает, раньше он это за предупреждение выдавал, а теперь за ошибку. Тоесть вот пропиши такой конструктор - MyException(const char *msg, int dataState):exception(msg)

  • @Mr2RG
    @Mr2RG 3 года назад

    Важное дополнение: класс exception может быть реализован по усмотрению разрабов std библиотеки. В виду чего параметры конструктора могут различаться количеством аргументов.

    • @gavyttop1341
      @gavyttop1341 2 года назад +1

      а что делать если я пишу exception но у меня он невидится?

    • @princessmary5556
      @princessmary5556 Год назад

      Бред.

  • @VKohai_vk
    @VKohai_vk 4 года назад +2

    Не работает

  • @_mirai
    @_mirai 4 года назад +4

    кто ставит дизлайки?

  • @oljaolsa7261
    @oljaolsa7261 4 года назад +2

    throw Myexception("число дорівнює 1"); ошибка Severity Code Description Project File Line Suppression State
    Error (active) E0289 no instance of constructor "Myexception::Myexception" matches the argument list Project44 C:\Users\Оксана\source
    epos\Project44\Project44\Source.cpp 30

  • @warbine5819
    @warbine5819 4 года назад +1

    14:14 Тут стоит сказать немного иначе. Ищется не "самый подходящий" (самый подходящий как раз MyException), а первый подходящий catch. Таким образом вы неправильно ответили на свой вопрос =)

    • @TheWladberlin
      @TheWladberlin 4 года назад +2

      Акцент был на том, что они оба "самые подходящие" в равной степени, но срабатывает тот, кто первый

  • @pavelios3577
    @pavelios3577 6 лет назад +4

    Спасибо за урок.

  • @SeshAlex
    @SeshAlex 6 лет назад +3

    Спасибо за урок!

  • @vladneaga5427
    @vladneaga5427 4 года назад +1

    Спасибо

  • @user-kb6qd8rg4g
    @user-kb6qd8rg4g 4 года назад +1

    спасибо

  • @user-hb7er4ff9u
    @user-hb7er4ff9u 2 года назад

    спасибо