Step 6 (S-47515)

From Stepik Wiki
Jump to: navigation, search

Step on Stepik: https://stepik.org/lesson/12772/step/6

Step 6 (S-47515) 1.png

[00:00 - 00:16] давайте посмотрим как применить исключение к нашему классу калькулятору заведен специальный тип подключения который будет соответствовать ошибкам вычисление выражений отдельный тип исключения позволит вызывающему коду четко отличать ошибки


[00:16 - 00:33] вычисление выражений вот других ошибок в программе исключения декларируется как обычный класс прямо или косвенно на следующее или run time accessory зависимости от того хотим мы делать его проверяемым или нет


[00:33 - 00:50] делать исключение проверяемый или нет дело вкуса и традиций конкретной группы программистов есть лагерь выступающие за проверяемые исключения и за дополнительный контроль со стороны компилятора другой лагерь говорит что остальные популярные современные языки программирования


[00:50 - 01:07] отказались от проверяемых исключений потому что это не лучшая идея они загромождают и усложняют плохой ненадежный код можно написать несмотря ни на какие проверки компилятором давайте сделаем наше исключений не проверяя


[01:07 - 01:24] я исключение обычно заводят конструкторы принимающая message и курс можно добавить в апреле метров если они требуются теперь в ответ на некорректные выражения калькулятор будет бросать исключение


[01:24 - 01:40] о сколько нам непроверяемые то никаких дополнительных слов в программе писать не требуется а вот если бы мы сделали его проверяемом то надо было задекларировать его на уровне метода и более того в интерфейсе калькулятор


[01:40 - 01:57] дело в том что при наследовании или реализации интерфейса нельзя декларировать определенному методу больше проверяемых исключений чем указано у базового метода это нарушило бы контракт базового класса


[01:57 - 02:14] зато контракт можно менять в другую сторону бросать в переопределенном методе меньше исключение чем задекларирована у родителя кстати точка входа в программу метод мы может декларировать и бросать любые проверяемые исключения


[02:14 - 02:19] все что вылетит из него приведет к распечатки stack trace и остановки программы