Step 5 (S-47513)

From Stepik Wiki
Jump to: navigation, search

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

Step 5 (S-47513) 1.png

[00:00 - 00:18] исключения в java делятся на 3 группы это exception и фронтлайн exception если нарисовать как они наследуются друг от друга то получится следующее картинка с roll


Step 5 (S-47513) 2.png

[00:18 - 00:36] exception и exception error и подклассы это ошибки виртуальной машины например означает что виртуальной машине не хватило памяти


Step 5 (S-47513) 3.png

Step 5 (S-47513) 4.png

[00:36 - 00:53] ну класс the fountain означает что виртуальная машина не смогла найти какой то из классов на который ссылается ваша программа реформ означает что класс найден но там что то не так с байткодом живьем таким образом сообщает что ей стало плохо


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


Step 5 (S-47513) 5.png

[01:12 - 01:28] ошибки такого сорта можно уже пытаться как то обрабатывать разница между ними состоит в том что exception его подклассы кроме рантайм exception являются проверяемыми checked рантайм exception его подклассы непроверяемые


Step 5 (S-47513) 6.png

Step 5 (S-47513) 7.png

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


Step 5 (S-47513) 8.png

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


[02:04 - 02:20] написать это можно следующим образом если мы напишем это на методе


Step 5 (S-47513) 9.png

[02:20 - 02:36] аналогичная проверка будет выполнено компилятора и во всех местах вызова нашего метода то есть либо его exception должен быть сразу обработать его возможность его вы это обозначено в объявлениях всех методов вызывающих наш метод


Step 5 (S-47513) 10.png

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


Step 5 (S-47513) 11.png

[02:55 - 03:10] их можно свободно бросать из любой точки программа не декларирует примеры не проверяемых исключений это null pointer exception error index out of bounds exception и арифметика exception вылетающий при делении на 0


Step 5 (S-47513) 12.png

[03:10 - 03:19] такие ошибки могут случиться в любой точке программы и было бы крайне не удобно если бы компилятор требовала християны декларировать или обрабатывает


Step 5 (S-47513) 13.png