Михаил Непряхин: Так всем, привет как видно срочно плюс ко пожалуйста, Поставьте
Михаил Непряхин: Ммм так звук Немножечко изменил. Говорить буду потише шум голос поберечь новые наушники для самоконтроля ну, ты Безношников, начинаю
Михаил Непряхин: перми через какое Время начинаю Громко говорить Звук немного погромче микрофон Трек
Михаил Непряхин: ну, давайте давайте Еще попробую выкрутить звук
Михаил Непряхин: Так вот давайте, вот такой фрагмент
Михаил Непряхин: где от проце Делать через компрессор Так получше звук
Михаил Непряхин: накну кей прямо как ты Болезненно Дарим По связкам Еще до конца Не Остановились
Михаил Непряхин: Так ну Давайте значит сегодня говорим про
Михаил Непряхин: Есть несколько тем которые нужно добить вот Начнем Мы
Михаил Непряхин: с ошибок да Начнем Мы с Обработки ошибок
Михаил Непряхин: Значит так Как в Гоу Есть обработка ошибок то эта тема
Михаил Непряхин: Ну Несколько специфическая отличается от других языков. И про это надо ну просто понимать как это устроено
Михаил Непряхин: не уметь этим пользоваться значит вот здесь пример это ну вот представим что у нас просто есть
Михаил Непряхин: какая-то слабость. Архитектура ну вот такая Же как, у нас
Михаил Непряхин: значит есть Серверы это Ипшный Например
Михаил Непряхин: называемые ну приходит на этот Сервис запрос а
Михаил Непряхин: значит Это Контроля То есть постоянно Же с Контролером Не вызывает си кейс
Михаил Непряхин: ньюс кейс У нас вызывает Два адаптации отпозгли и Отредисон
Михаил Непряхин: ну вот У нас они здесь и один из Адаптеров возвращает Ошибку
Михаил Непряхин: значит сразу обратите внимание что У нас здесь Две? Ошибки для каждого доктора,
Михаил Непряхин: для Ради Родилсянабтерната ну вот Мы Сейчас проверяем скажем пример как Будто Ошибка произошла? В погре
Михаил Непряхин: значит Ошибка Тоже произошло а позади
Михаил Непряхин: соответственно мы Дойдем вот до этого места
Михаил Непряхин: здесь у нас вернется ошибка и Мы ее Начнем возвращать дальше то Есть, эта функция вернет Ошибку?
Михаил Непряхин: Реквием Тоже. Здесь отвернет Ошибку?
Михаил Непряхин: Здесь Мы Получим Ошибку?
Михаил Непряхин: И Мы ее просто распечатаем Давайте посмотрим Что Напечатается
Михаил Непряхин: морекрест стирер возраст редактор над фонд
Михаил Непряхин: так чок как он По звуку вообще как быть вообще мне нетерпимо что-то подстроить слушабельным лошаблиным
Михаил Непряхин: не много Ли этого дыхания Так как я выиграл. У Компресса То Дыхание больше появилось ну Окей спасибо
Михаил Непряхин: Так вот значит как у нас выглядит ошибка оркестр ира
Михаил Непряхин: ну рекестр это вот мы мы сами написали интервен то есть как бы эту часть нам, не очень интересно и мы Видим что
Михаил Непряхин: вот Наша ошибка поздравил. Садаптер нотфунд
Михаил Непряхин: вообще зачем нужны ошибки да как будто философия зачем как бы
Михаил Непряхин: мы тут чего то как бы заморачиваемся думаем как, их назвать и так далее для того чтобы когда эта Ошибка произошла
Михаил Непряхин: и мы записали события в волг через блогер
Михаил Непряхин: мы ну это соответственно этот лок он Попал в систему хранения Логов
Михаил Непряхин: и дальше Мы когда эту ошибку Найдем увидим
Михаил Непряхин: Мы хотели бы понять по Коду где Она произошла
Михаил Непряхин: потому, Что если Мы Не можем понять погоду вот Место, где это Место,
Михаил Непряхин: если Мы и назвали ошибку конкретно Мы просто вот когда будем читать лок все вот Мы Там систему блогера планирует наша ошибка земли контраце
Михаил Непряхин: ищем по проекту ищем по проекту Находим вот та самая Строчка
Михаил Непряхин: и Мы Понимаем Что вот эта ошибка вылетела она Находится всего лишь в одном месте и понятно, где ошибка произошла можем
Михаил Непряхин: небажить на чем минус этого Подхода
Михаил Непряхин: в том что у нас нет контекстов
Михаил Непряхин: то есть мы вот поняли вот до этого места ну как бы нам повезло что ошибка Использовалась. Только в одном месте но если бы ошибка Использовалась. В двух местах в трех местах
Михаил Непряхин: мы ну. Были бы вынуждены гадать,
Михаил Непряхин: а откуда на самом деле эта ошибка вылетела
Михаил Непряхин: ну показательные примеры с чтением исфаева. Например Там читаете файл Там происходит ошибка
Михаил Непряхин: и если вы в нескольких местах этот файл, читаете или допустим Два файла читаете подряд вылетела у вас ошибка что невозможно прочитать файл, а какой именно дифай его невозможно прочитать Там Не, будет, написано
Михаил Непряхин: и хотелось бы добавить контекст чтобы анбажить понять в каком месте произошла ошибка Тем не, Менее вот
Михаил Непряхин: мы Сейчас будем смотреть Примеры как правильно делать. Но вот Это, к вам в жизни тоже будут встречаться
Михаил Непряхин: Это, Возврат головой ошибки То есть вот наша Функция она вызвала какую То другую функцию
Михаил Непряхин: получи, Мы такие Ошибку, Мы проверили да Там ошибкам не берем и возвращаем ее наверх как есть
Михаил Непряхин: этот подход неправильный то есть здесь У нас Нет контекста и это
Михаил Непряхин: ну очень сильно затрудняет де-факто в этих случаях как люди поступают ну они
Михаил Непряхин: просто стек трейс тоже записывает боги и ну
Михаил Непряхин: этот трейс это Не самая как бы Дупочитаемая на самом деле Штука Но для того чтобы все-таки понять стек вызовов
Михаил Непряхин: Мы Вынуждены ранить Наш весь трейс во-первых он Занимает много места где Выжирает Объем большой в системе хранения Логов и вообще как бы компании где я работал обычно
Михаил Непряхин: делятся на Две части Те кто Запарируется О хранении и Те кому пофигу и обычно вот здесь системы хранения сервера на Которой хранятся логики, они
Михаил Непряхин: по вот этот Размер инфраструктуры количество северов оно превышает количество Серверов
Михаил Непряхин: Но только реально обычных Продуктовых Серверов то есть на Хранение, Логов тратится очень много местов для ресурсов
Михаил Непряхин: и есть второй Тип. Компании который об этом беспокоится, и например, просто вам скажут ну столь Трез, По любому событию выкидать не можете а давайте думаете, как-то оптимизировать свои боги
Михаил Непряхин: Так вот значит как правильно Не, работает с Ошибками в Голову.
Михаил Непряхин: Значит вот второй вариант
Михаил Непряхин: Здесь Сейчас все пять примеров Мы Будем Рассматривать пять десять кейсов работы с ошибками и они все будут тут в одной структуре да с небольшими изменениями
Михаил Непряхин: на верхнем уровне все То же самое
Михаил Непряхин: вызываем Марквест и смотрите Мы не просто Возвращаем голую ошибку Мы Возвращаем ее с контекстом.
Михаил Непряхин: Выглядит оно вот Так вот фмт точка и рф дальше в Кавычках
Михаил Непряхин: у нас контекст в нашем случае Мы говорим что Мы вызывали юс кейс
Михаил Непряхин: говорит Очарова значит что когда Мы вызывали весь кейс он Вернул ошибку
Михаил Непряхин: вот это ошибка и мы ее сюда дозаписываем с Помощью специального синтаксиса дабл. Ю оцендобою
Михаил Непряхин: значит здесь надо поговорить обща а что такое ошибка ошибка это интерфейс один трофейс э ира возвращающий стрингу
Михаил Непряхин: то Есть это Два указателя один новеллью
Михаил Непряхин: а второй на тип эйти Помбовать ошибка
Михаил Непряхин: а Мы Можем спокойно взять и Записать вот Так вот здесь даже решка ничего Не подчеркнет значит этот синтаксис означает Что Мы вот это вот записываем как строку
Михаил Непряхин: и посмотрим на эти функции потом как-нибудь там их очень много но самое популярное это с Хотим, записать строку дей. Хотим, записать диджитал типа цифровом число
Михаил Непряхин: а вы Хотим, Этого просто вэлью вообще запиши что угодно и сюда пришел запиши как Есть и
Михаил Непряхин: значит Специальный габл. Ю это враг это Именно синтез Только для ошибок а и Рапинг, ошибки Оборачивание ошибки
Михаил Непряхин: и это позволяет Дальше
Михаил Непряхин: увидеть во-первых весь стек трейс потому что мы можем в любой момент взять и прочитать ошибку вот таким образом и как видите здесь вернет Настроение, стринга
Михаил Непряхин: то есть, Мы когда Мы Так Читаем то Мы Возвращаем Вот полностью ошибку как есть,
Михаил Непряхин: и Вот принтерме Вот здесь Он Так и делает то есть он получает ее и просто распечатывает ну! То же самое делает что
Михаил Непряхин: вот тут, Тоже, самое делает вот а
Михаил Непряхин: и когда мы вот Так вот таким образом записываем Ошибку, мы создаем Новую Ошибку,
Михаил Непряхин: которую возвращаем то есть ведь эта функция она создает Новую Ошибку, из аргументов
Михаил Непряхин: и эта ошибка будет обвернутой над оригинальной Ошибкой а оригинальная ошибка прошла здесь
Михаил Непряхин: и вот до оригинальной ошибки мы Всегда можем достучаться и это
Михаил Непряхин: м Иногда это важно это нужно эта комната
Михаил Непряхин: Поэтому в целом ну. Выглядит это может быть не очень презентабельно
Михаил Непряхин: но это вот стандарт то есть, это, предложение было Сделано в версии гоу Один, тринадцать
Михаил Непряхин: третий сезон Частная версия гу Один, двадцать четыре
Михаил Непряхин: По версии гоу Один, тринадцать был введен, вот этот синтаксис с фарапингом и в общем-то
Михаил Непряхин: то-то значит Так я остался
Михаил Непряхин: как привыкли работать в версии Один тринадцать было очень много библиотек Которые позволяли Делать То же самое
Михаил Непряхин: и вот они Так и остались на том старом синтезе ну вы когда будете работать с реальными Проектами просто увидите что Работают здесь По-другому чаще всего Через ирас
Михаил Непряхин: значит альтернативный ситоксис точка лав тк
Михаил Непряхин: пакет это минуты я вот тут исключил из Этого короче Есть пакет вот
Михаил Непряхин: который был популярен очень до версий Один тринадцать он назывался эррос
Михаил Непряхин: и Ну когда на Это все посмотрели создатели, языка подумали Что ну да надо его как бы
Михаил Непряхин: то Что Там было удачно повторить
Михаил Непряхин: но вот вместо вот Этой функции с мраком
Михаил Непряхин: они сделали вот такой синтез, а в остальном функционал оттуда скопировали к себе,
Михаил Непряхин: и ну там в Этом случае и
Михаил Непряхин: то есть вы вот это вот
Михаил Непряхин: то же самое что и вот это
Михаил Непряхин: но это Не, тематично потому что Мы Тянем
Михаил Непряхин: пакет который нам Не, Нужен ни для чего
Михаил Непряхин: кроме как, чтобы сделать рапинг, ошибок вот так вот они вот так вот
Михаил Непряхин: Поэтому как, бы ну да немножко, страшнее чем вот это вот
Михаил Непряхин: а Ну привыкайте короче вот к такому индексу Оборачивание ошибок
Михаил Непряхин: так вот и смотрите значит в противовес тому как до этого мы обрабатывали видите везде возвращаем ошибку ошибку ну как бы типа коротко
Михаил Непряхин: получается вот такой такой синтекс то есть мы возвращаем обернутую ошибку аа
Михаил Непряхин: Так и здесь так как Появляется контекст уже нет нужды Делать
Михаил Непряхин: более конкретную Ошибку. А Можно работать с более в общем на ошибкой
Михаил Непряхин: смотрите До этого У нас была ошибка каждая на свой доктор
Михаил Непряхин: что-то Мы Не смогли найти, возглася что-то Мы Не смогли найти, в Ряде и Это самое популярное
Михаил Непряхин: ошибка которую все делают, То на каждую
Михаил Непряхин: а на каждый случай на каждый автор, Создается своя уникальная ошибка Нотариус,
Михаил Непряхин: хотя дальше почти Никогда Не имеет смысла и
Михаил Непряхин: Поэтому Мы просто создаем Одну Нотфаунд, но универсальную на все Адаптации
Михаил Непряхин: с ней удобнее работать и дальше когда Мы хотим, на нее проверить ну когда Мы будем на нее проверять нам. Надо будет проверять только на нее одну а Не на все вот эти вот адаптеров может быть пятнадцать штук у вас пятнадцать минутка основных ошибок короче неудобно когда она у вас одна ну это удобно
Михаил Непряхин: и как будут выразить ошибки в Этом случае
Михаил Непряхин: николас кейдж вызвал поиск, адаптер а поинтересендапте Вернул ноут фаунд
Михаил Непряхин: получается Информативная Цепочка того что произошло
Михаил Непряхин: и это аналог стек трейса то есть угу
Михаил Непряхин: когда Мы видим стэк трайс ну то есть что-то идет, Не так
Михаил Непряхин: стейк начинает разматываться и У нас Там много строк и типа кто какую Функцию вызывал и Мы Там можем его читать читать и все-таки понять где произошла Ошибка
Михаил Непряхин: это способ. Компактно записать то же самое.
Михаил Непряхин: И он очень помогает когда вы ищете Хотите, найти проблему где ошибка произошла но
Михаил Непряхин: из-за этого приходится, руками добавлять вот Эти, штуки
Михаил Непряхин: есть м автоматизированные инструменты как это Делать например,
Михаил Непряхин: Мэри есть Сейчас посмотрим этого Или нет
Михаил Непряхин: Ммм члены когда вообще Не популярна
Михаил Непряхин: ну по-моему ты этот пакет Подвидел я такой пакетик
Михаил Непряхин: Непопулярная но я работал с чуваком из
Михаил Непряхин: бегета, т хостин-провайдер вот они там использовали и ее
Михаил Непряхин: значит в этом случае вот она вот так вот оборачивает Не, ерун получается покорочен
Михаил Непряхин: пример будет нет как она Ошибку возвращает
Михаил Непряхин: ну вот Не вижу ну короче суть в том что, вот она Позволяет,
Михаил Непряхин: То же самое добиться, но без дополнительно этого контекста
Михаил Непряхин: То есть Там она по-моему с помощью вызова вот Там Есть, брон Тайная Функция которая позволяет. Узнать на Какой строчке кода Мы Сейчас находимся Когда выполняем
Михаил Непряхин: ну когда ошибка происходит эта трагедия Там Тоже, указана на Какой строчке с номером строки произошла ошибка ну, вот эта вот библиотека Она использует функцию
Михаил Непряхин: и Таким образом строят вот эту вот ту же цепочку но как видели там двести майков то Есть она непопулярна абсолютно
Михаил Непряхин: Поэтому единственный Дипломатичный, способ это вот Делать вот так вот и даже я призываю вас Не писать Никакие Там свои европеры потому что. Ну Там все библиотеки, и весь, упансорс они используют, этот вот диаматичный, синдексис
Михаил Непряхин: да и значит вот Давайте еще Раз, посмотрим что. Чего мы пришли значит вот У нас был такой такая ошибка
Михаил Непряхин: а то есть ээ ну да Можно Догадаться что вызывал союз кейс
Михаил Непряхин: Но Информация о том. Что был вызван виски здесь нет на самом деле Мы просто видим что ошибка произошла в подлинных редакторах
Михаил Непряхин: и когда Мы Так скажем. Инструментируем Можно сказать код она уже вот Получаться цепочкой
Михаил Непряхин: тут возникает вопрос как это грамотно
Михаил Непряхин: описать вот эти вот контекстные вещи ну во Первых
Михаил Непряхин: если у вас подряд два раза вы вызываете одно, и То же Такое бывает
Михаил Непряхин: и вы получаете один и тот же контекст приходится добавлять какие То отличительные знаки ну Там Не знаю это первый, Вызов это Второй
Михаил Непряхин: для того чтобы потом когда вы получили ошибку вы поняли где Она произошла Она произошла вот здесь были строчки
Михаил Непряхин: то Есть, Основная задача до вот этого вот контекстного Описания найти ту самую заветную Строчку где произошла ошибка
Михаил Непряхин: Казалось. Бы странно Но очень. Часто в чужом козе будете что-нибудь дыбажить видеть ошибку
Михаил Непряхин: и только гадать где черт побери она вылетела отсюда, она и Но вам приходится а вот Это вот добавлять
Михаил Непряхин: у меня Есть макросы для этого ну понятно, что если, Есть купаем То купай вот Это отличное дело То Есть Он Не дурак Он в Принципе Очень Быстро понимает как. Вы Эти. Вещи Пишете
Михаил Непряхин: Вот Но Также Есть макросы Которые он скинул а значит Лайф тим плейтс есть они меня здесь Нет шашлык
Михаил Непряхин: Ну Возможно они здесь Не добавлены
Михаил Непряхин: страйк Таксон да Возможно если. Не добавлено мне
Михаил Непряхин: Сейчас Проверим прочь вот если, вот ир вот так вот на Время набираете в
Михаил Непряхин: идишки Нажимать центр У вас вот генерица ну как бы Шабочек такой вот у меня значит есть два макроса любимых это я делаю
Михаил Непряхин: ну вот вместо вот этого у меня генерится сразу сриттерном
Михаил Непряхин: и вот с этим вот всем только вот в этом месте я оставляю курсор и мне здесь надо будет написать
Михаил Непряхин: то есть все там Делают, вв
Михаил Непряхин: ну вот здесь не кручаю в Этой решке у меня не подключены эти макросы и получаю уже готовый такой кусок кода где надо вот в этом месте только написать что какой контекст
Михаил Непряхин: значит про само написание, контекста тоже тут, есть Два Подхода, значит первый и вы пишете на английском типа вот как здесь ну Или еще более Понятно,
Михаил Непряхин: типа Там был вызван какой то автор
Михаил Непряхин: здесь у, Меня шутка сокращенная версия да тут, можно прямо, вот писать предложение
Михаил Непряхин: мне больше нравится, Стиль, либо вот максимально
Михаил Непряхин: коротко но чтобы это было контекстом понятно, либо я копирую название вызываемой функции, просто я его сразу добавляю
Михаил Непряхин: в этом случае тоже получается хорошо что, если мы здесь сделаем
Михаил Непряхин: вот мы вызывали эскиз Если тут Есть название пакета Соответственно вместе с названием. Пакета
Михаил Непряхин: как в таком. Случае получается ошибка
Михаил Непряхин: Единственное что. Есть соглашение что. Ошибка должна начинаться с маленькой. Буквы
Михаил Непряхин: но для Оборачивания, ошибок это правила не действует но в целом как бы
Михаил Непряхин: вот это тот способ, мне ты не время нравиться больше
Михаил Непряхин: что она все с маленькой буквы и
Михаил Непряхин: единственное что тут приходится больше думать, не просто скопировать строчку а еще как бы над ней порассуждать
Михаил Непряхин: так ну вот все как бы основная базовая часть здесь я рассказал так будет ли Разница в Рф
Михаил Непряхин: а цена будет Через процентов, суда будет
Михаил Непряхин: дело в Том, что если вы Сделаете Процент тэс то не будет аврапинга
Михаил Непряхин: то есть вот Это вот дабл ю оно дилет
Михаил Непряхин: эмбдинг да получается Давайте посмотрим как Там ира ту сторону шин.
Михаил Непряхин: Так Нужен Пакет ера
Михаил Непряхин: вообще ошибки Создаются через, ераста ну вот у меня здесь есть пример вот я Создвинул ошибку
Михаил Непряхин: Так шаг с белением
Михаил Непряхин: эра Стринг,
Михаил Непряхин: влад Такнот
Михаил Непряхин: тут чего даже не очевидным как Оно подкопано настроено Так
Михаил Непряхин: очень не знаю в каком месте в этом стандартной библиотеке это Искать но суть в том что эммм значит работает это Так
Михаил Непряхин: Что дабл. Ю он создает новую структуру ошибки
Михаил Непряхин: а вот Эту ошибку записывают ее полем
Михаил Непряхин: и как У вас. Получается матрешка каждый Раз когда вы делаете вот первый Раз ошибка возникла здесь и это настоящая ошибка дальше здесь мы ее взяли создали Новую, ошибку
Михаил Непряхин: и Эту ошибку оригинальную поместили ее полем
Михаил Непряхин: дальше Мы опять вернули и то же самое то есть у нас получилась уже ошибка в ошибке матрешка и
Михаил Непряхин: если вы возьмете сделать с то ну результат был тот же на самом деле этот Год тот же
Михаил Непряхин: но вы не сможете сделать распечатку распаковку а это У нас следующая тема
Михаил Непряхин: как Распечатывать ошибки Доставать их Оттуда Поэтому да надо делать обязательно как Цену добрую рок Что Ей не подсвечивают потому Что ну Очевидно как бы эстетический анализ должен был показать Что я Имею в виду совсем другое, я хочу сделать враг
Михаил Непряхин: Так на каком Уровне Должна блокироваться Ошибка на Уровне Контроля Российские Переименования
Михаил Непряхин: отличный вопрос значит Смотреть когда Мы Думаем где залогировать
Михаил Непряхин: Мы Всегда Манируем на самом верхнем уровне кто
Михаил Непряхин: Всегда, же ведь какая-то гарутина вызывает правильно восемнадцать сервер
Михаил Непряхин: он представил что У нас здесь сервер и запрос пришел
Михаил Непряхин: создалась Новая грутина ну Помните Там как сервер устроен он принимает запрос и поднимает Новую Горучину. Вот проставившую гурутина Поднимая вот этот запрос
Михаил Непряхин: и вот Мы Сейчас вот здесь находимся в самом, начале к работы этого запроса в самом, начале работы бутины
Михаил Непряхин: этот уровень называется, верхний
Михаил Непряхин: так вот ошибки Реагируются Всегда, на Верхнем Уровне на самом, Верхнем Уровне вот где гурутина Начала работать над чем-то Он в этом месте Мы Егогируем
Михаил Непряхин: То есть мы Могли бы просто вызвать здесь ньюс кейс
Михаил Непряхин: отвис кейт бы когда здесь получил. Ошибку
Михаил Непряхин: вот Он был здесь и замагировал да
Михаил Непряхин: ну Так неправильно делать правильно возвращать ошибку на самый Верх кто-то же Вызвал в Конечном итоге в самом верху кто-то есть вызывающий Этот менеджер до этого он сказал вызовись вся, Цепочка Вот кто это сделал
Михаил Непряхин: Вот и его и ответственность это все дело залогировать запротоколировать
Михаил Непряхин: иногда бывают ситуации когда нужно что-то залогировать где-то Там внутри этой Цепочки Вызова допустим Там какой-то цикл
Михаил Непряхин: и десять элементов цикле обрабатываться если Один не обработался нам например, не страшно гладко
Михаил Непряхин: ну тогда пусть он его здесь заблокирует а вернет наверх то Что Получилось
Михаил Непряхин: или бывают ситуации короче говоря когда хочется залогировать Внутри и тогда, Мы лагируем вот Там, где это удобно но это исключение а правило тот кто вызвал на самом верху и вот получил результат если Это ошибка когда он его заблокировал.
Михаил Непряхин: Так дальше Раз мы Таким Хитрым образом запаковываем наши Ошибки матрешку, значит мы можем и Распаковать
Михаил Непряхин: и За это отвечает.
Михаил Непряхин: Функция ирас Анвра значит Что Она делает Принимает Ошибку Ммм
Михаил Непряхин: короче здесь к сожалению, Не Увидеть ее Логики Но опять же как, бы суть в чем Мы и
Михаил Непряхин: получили ошибку какую То Там ничего Не менялось вот я только этот Год написал Мы получили Ошибку и хотим,
Михаил Непряхин: а канал на сегодняшний день Давайте я еще Раз посмотрю
Михаил Непряхин: вот она мы хотим, посмотреть.
Михаил Непряхин: Как, бы на
Михаил Непряхин: вот У нас ошибка реквистерра атом и здесь печатана в принтере вот это уже пошла ошибка то Есть, вот у нас здесь три Ошибки
Михаил Непряхин: а От вискитиса от посгрей и от нотфунда но от фронта есть сама оригинальная ошибка вот она
Михаил Непряхин: как до нее достучаться ну во-первых если, мы сделаем анврап один Раз
Михаил Непряхин: смотрите мой Манкроп один Раз и записываем в эту же самую ошибку в оригинальном а то мы видим то
Михаил Непряхин: вот мы
Михаил Непряхин: У нас была ошибка из кейса Мы ее потеряли то есть вот у нас ошибка пошла с пользой редактора, и там надфонд
Михаил Непряхин: то есть здесь условно была цепочка Из трех ошибок и она просто распечатана виде строки да но она в памяти хранится как структура в структуре
Михаил Непряхин: и вот Мы просто взяли и вышли ну посмотрели более
Михаил Непряхин: ошибки у этой ошибки а Там вот эти то есть, вот следующая ошибка и его танврат делает Так Что, он может почитать посмотреть, вот Эту следующую Ошибку
Михаил Непряхин: хорошо а дальше Смотрим Давайте еще Раз, распечатаем
Михаил Непряхин: мы говорим а вот У Этой ошибки есть ошибка да есть нотаунд и вот мы до нее здесь достучались, и получили Сейчас здесь вот перемены ира
Михаил Непряхин: ту самую изначальную Ошибку изначальная ошибка в отношении Арнольда
Михаил Непряхин: Мы можем проверить Она это Или Не Она
Михаил Непряхин: то есть Мы просто можем взять и проверить Ошибку тупо на равенство тана Это Или няня
Михаил Непряхин: да Ошибка Это Не трофейс и чтобы равенство было равно
Михаил Непряхин: и значение ошибки назначение ошибки Вот оно стригану фаунд
Михаил Непряхин: и ее Тип Тип ошибки Иерар должны быть Заполнены равны вот Поэтому Мы Можем взять и просто сравнить на равенство то Есть сохранить ли Мы вот Эту Ошибку Сравним равенство
Михаил Непряхин: то Она Не Будет ровно к тру
Михаил Непряхин: Светю Вот Она еще Она Не равна тру
Михаил Непряхин: потому, Что сравнивается, на равенство Не та Ошибка которая там в Конечном итоге Внутри
Михаил Непряхин: а сравнивается, Нравится Вот Именно Вот та Ошибка которая Сейчас У нас здесь а У нас здесь Сейчас Ошибка пользуется доктора,
Михаил Непряхин: и У нее Внутри уже Та изначально оригинальная Ошибка Поэтому сравнение, на равенство дает фолс
Михаил Непряхин: а ну Все-таки хотелось бы ну как-то узнать
Михаил Непряхин: вот нас интересует ошибка и ранод, фаунд,
Михаил Непряхин: она ведь там есть цепочки я бы хотел бы узнать все-таки вот это ошибка ноуткаунд или нет фаунд
Михаил Непряхин: то мне вот Так удобно чем заниматься нет есть способ попробовать что-то следующий это из иррарс есть до Него Сейчас Мы Дойдем посмотрим Но Еще бы хотелось узнать а Что, если она враг будет дальше
Михаил Непряхин: Что, Там будет в Конечном итоге тамбот нил
Михаил Непряхин: и Мы понимаем Что то поле Которое врагнутые. Ошибки это указатель
Михаил Непряхин: потому Что взирова Или указатель равно Нет
Михаил Непряхин: если Мы попробуем еще Раз Обрапнуть Я кстати это Никогда Не Делал но Скорее, всего Мы Получим Не упоинный ресепшн Потому Что будем анврапать нил,
Михаил Непряхин: вот Поэтому Вы Всегда, можете с помощью функционалов дой дойти до самой той изначально Оригинальные Ошибки
Михаил Непряхин: но это не Очень Удобно Так делать Поэтому есть способ по удобнее значит Он называется ерас из
Михаил Непряхин: значит Мы уже посмотрели на создание
Михаил Непряхин: ошибок это ира с Точкой нью кризис неуда
Михаил Непряхин: и Раз Точка Него Так Ошибки создаются Так Тоже. Как Бы Везде Тоже. Валидно Так Тоже. Можно создать Новую Ошибку Но просто правильнее Делать через. Зеркало с ним диоматично
Михаил Непряхин: вот этот откопай вот помогал
Михаил Непряхин: короче говоря если Мы будем сравнивать Эту ошибку на Ерунду То оно естественно Даст фолс потому, Что а Там
Михаил Непряхин: не Она Она только в Глубине Готовит но если Мы будем Делать То Же самое с Помощью ирс Из
Михаил Непряхин: Мы Передаем туда ошибку которую Мы хотим, сравнить на какую-то ошибку день собственно говоря в саму ошибку и Он говорит тру То есть таким способом Мы можем понять что Та ошибка которую Мы получили
Михаил Непряхин: а Она может быть какой угодно длинный матрешкой ну в конце цепочки
Михаил Непряхин: Или на каком-то из Уровней Этой цепочки будет находиться Именно та самая. Ошибка которая нас интересует
Михаил Непряхин: потому Что Мы можем работать с катанными ошибками и Там Тоже Их врабать и Не обязательно в самом конце Должна быть оригинальная Ошибка Если бы У нас Тут вот это Тоже была бы наша кастная Ошибка Мы бы Могли на Нее сравнить и Тоже Там сказать вот она в цепочке где-то Там есть
Михаил Непряхин: или нет это очень Удобно как будто это, постоянно используется
Михаил Непряхин: когда мы хотим, выяснить произошла ошибка
Михаил Непряхин: это, интересующая нас ошибка или какая то другая
Михаил Непряхин: Мы таким образом вещью проверяем а она Или Не она и
Михаил Непряхин: последнее с чем Мы должны. Уметь работать Хм Это и рас значит где он может пригодиться.
Михаил Непряхин: Там где У нас Есть атомные ошибки
Михаил Непряхин: Ведь Раз ошибка это интерфейс значит Мы можем создать любой тип. Абсолютным и хоть стрингу хоть структуру
Михаил Непряхин: добавить ему метод ира который Возвращается сталингу
Михаил Непряхин: но Главное что он должен быть Не указательный потому Что. Если он будет указательный то это работать Не будет
Михаил Непряхин: обязательно Не указатель м-м Почему потому что Мы будем изначально наш тип использовать как вы илью
Михаил Непряхин: А Раз, Он Год как вэлью то у Него Не могут Быть указательными Красивыми
Михаил Непряхин: потому Что Будут Получаться Так Что вы интерфейс будете Складывать вэлью а уэлью Будут вызываться указательные Методы а это Голову. Запрещено Помните Мы когда разбирались с интерфейсами Мы об этом говорили,
Михаил Непряхин: Что винтрофест Мы не Можем сложить
Михаил Непряхин: ну как бы значение по значению
Михаил Непряхин: и есть ли у Него бот указательный север ни указать он Не может но он нам, только Не Нужен указательный на север
Михаил Непряхин: Поэтому как бы возвращается мы же ничего Не меняем мы Не мутируем этот стол саму оригинальную
Михаил Непряхин: значит когда может быть полезна основная ошибка когда вы имеете, какую то
Михаил Непряхин: сложную систему Размеров Дтп это использует редко но встречается Допустим Мы хотим, Код Записать хотим, Записать какая ошибка была
Михаил Непряхин: и хотим, одну ошибку записать для нас и
Михаил Непряхин: чтобы он понял на каком языке ему например у нас сервер написан если мы торчим куда-то наружу и нам надо или на русском языке нам надо ошибку обязательно дать тогда вот как будут тоже юзы такие ка остальные ошибки ну и так далее, то есть как бы полей. Здесь может быть очень много
Михаил Непряхин: и главное что, из этих полей. Вы потом просто составляете в текстовом виде какой-то осмысленной ну как Бы была
Михаил Непряхин: удовлетворена
Михаил Непряхин: ольга. С Ошибкой У нас называется Только первый Шотаж как Возраст У нее Кот и Это Они то есть у нас тут, инт вот Мы говорим что Кот Преврати вот сюда вставь
Михаил Непряхин: и и Поэтому Так странно
Михаил Непряхин: вот но для тех кто отработал то типа вот этого у них дешевный переход получается на Гошку, кто сине работал приходится немножко в интернет вроде главное смотреть
Михаил Непряхин: а тут какой-то контекст и по-моему записали и вот его тоже сюда добавляем
Михаил Непряхин: в целом стиль ошибок подразумевает вот это двоеточие ну? Обычно
Михаил Непряхин: он чего-то описывал какой-то контекст где Она произошла а даже двоеточие и там какая-то суть
Михаил Непряхин: вот Или Допустим рэдис Ошибка Она вообще другая там Не какой-то месседж но она тоже удовлетворяет этому. Интерфейзу
Михаил Непряхин: и Мы хотели бы Не, просто проверять на ис это ошибка или Не, это Мы хотели бы именно, тип
Михаил Непряхин: узнать то Есть вот Ведь это же Тип и вот
Михаил Непряхин: эээ типа это она Или Не она
Михаил Непряхин: Есть функция эс пакетик и Раз
Михаил Непряхин: и Мы в нее должны передать создать Сперва Эту Ошибку основную и передать туда а указатель соответственно
Михаил Непряхин: и ээ когда Мы получаем тру
Михаил Непряхин: То это значит Что типск оставался это значит Что вот это ошибка превратилась в эту ошибку
Михаил Непряхин: и Мы теперь можем от Этой дискостованной ошибки использовать ее методы или Поля вот мы Допустим Хотим?
Михаил Непряхин: Достучаться до Поля Кот Если, мы просто посмотрим Что тут, возвращает ошибка
Михаил Непряхин: возле сандаптер поздравил. Сира Кот сорок Два коннекшн рефьюст
Михаил Непряхин: значит как где она произошла Вот Мы создали Тонушку, атомную ошибку и вернули ее записали контекст написали код
Михаил Непряхин: если Мы просто Смотрим на делаем Манврапинг, то наша Ошибка она будет Так Выглядеть! А мы Допустим Хотим? Достучаться для Внутреннего. Поля сорок Два
Михаил Непряхин: во Внутреннего. Поля, Кот значение сорок Два
Михаил Непряхин: вот Мы костром его и вот здесь соответственно Мы получаем значение этого Поля,
Михаил Непряхин: это используется Не Так Часто но просто об этих возможностях надо знать то есть в целом эс используется очень редко обычная библиотека какие-нибудь и у вас есть примеры от Создателей библиотеки как надо Использовать вот
Михаил Непряхин: этот апе или в целом довольно-таки
Михаил Непряхин: и не сразу не теряться потому что, это бывает используется действительно вот
Михаил Непряхин: про ошибки Про ошибки все Давайте есть какие то Вопросы есть здесь сразу можете голосом сдать
Михаил Непряхин: все ли понятно на текущем Этапе.
Егор Ширяев: Ну здесь более-менее понятно, а вот в браке ну наподобие в прошлом я смотрел, поправо ошибки ну и там тут уже на эта тема думал буквально сегодня
Егор Ширяев: то есть где логировать и как обрабатывать и много не понял для чего вот там необходим в рапинг там получается Функции Есть Две два хелперов Функции Одна, из них Эр другая Джейсон Том Джейсон По моему.
Михаил Непряхин: И То Что означает. Мы как раз сегодня про Это говорим.
Егор Ширяев: Да.
Михаил Непряхин: Добрый день Окей надо же Давайте дальше просто про ошибки да Есть Еще У кого-то вопрос кризис.
dmitriy: Да У меня такой быстрый вопрос а получается в рс Он берет в себя Ошибку которая пришла сверху.
Михаил Непряхин: Да.
dmitriy: А сравнивают ее с пгр. Он с типом, Что это поздно Сэр.
Михаил Непряхин: Да Шути Я ознакомил.
dmitriy: Аа и дальше он привод.
Михаил Непряхин: Для нее кошмар.
dmitriy: Да и.
Михаил Непряхин: Да.
dmitriy: Все я понял спасибо.
Михаил Непряхин: Два в одном и полем потому Что У этого ничего нету и типа Покажи такой Рэпер удобный.
dmitriy: Ну и.
Михаил Непряхин: Рефлекшн вы как Бы когда видите пакет рефлект лайт но они Там вы уже облегчили как мыли
Михаил Непряхин: Ошибка отлавливается Только в ронтайме Поэтому
Михаил Непряхин: если ну как Бы с рефлексией очень редко кто работает ну вот если вам придется работать То конечно там Говорят что русские все придется
Михаил Непряхин: антрефси ну и медленно отвечал.
Михаил Непряхин: Так
Михаил Непряхин: как без блогеров значит стандартный блогер который был изначально в языке
Михаил Непряхин: он очень малозабельный то есть тут если, посмотреть еще значит что у него есть
Михаил Непряхин: вот мы пишем время выводится
Михаил Непряхин: и тут настолько есть Функция Принт как бы Не было возможности делать во-первых структурированный круг
Михаил Непряхин: а ну то что как бы в рисовании он писал две проблемы да как быстро нахнула ира
Михаил Непряхин: Грисон не писал и нету Этой возможности написать и вот
Михаил Непряхин: ну паник он кидается так трезвешен ну если, Мы делаем панику лилль ии и фатал
Михаил Непряхин: просто закрывают закрывают во что Внутри хватало у Него здесь вот войсекситн
Михаил Непряхин: Хорошая Штука слизерина нигде не используется
Михаил Непряхин: и вот буквально недавно Там наверное версии один двадцать один появился
Михаил Непряхин: эс ло Крути По структурированный мок ну типа Уже чуть лучше
Михаил Непряхин: вот Мы создали ошибку можем задать с каким от какого уровня ошибки будут писаться в стыд и
Михаил Непряхин: здесь мы говорим что дебаг то есть вот можно сказать что все
Михаил Непряхин: можно указать в урнинке и ир будет писаться и можно просто ира кумира ничего не будет писаться вот это все будет откидываться а это будет писаться ну то есть это для всех блогеров такая тема что
Михаил Непряхин: а вы указываете начиная от какого уровня вы Хотите, писать Налоги и как бы эту функцию добавили уран
Михаил Непряхин: и можно каждую отдельную ну как бы не заморачиваться не говорить какой вы хотите
Михаил Непряхин: тут удобно удобным образом как это принято на Других языках, блин писать логием
Михаил Непряхин: вот так оно выглядит то Есть видимо Ничего не указывали оно ему пишется добавляется и там даже настраиваться Можно и
Михаил Непряхин: короче Ээ Так как мир. Захватил
Михаил Непряхин: аа другой Блогер эд Зап сам популярный Блогер в Мире то. Этот Блогер он ну
Михаил Непряхин: сама по французски очень сильно проигрывает и вроде есть Но никто его не использует
Михаил Непряхин: значит что за запад назад кэро блогера
Михаил Непряхин: вообще вот Убер подарил несколько библиотек популярных
Михаил Непряхин: ну две надо сказать вот Заблогер и которые автоматический гомок спрог ставит
Михаил Непряхин: ну Там еще популярная идея но ее не надо использовать
Михаил Непряхин: и вот этот блогер он был
Михаил Непряхин: было для Него еще Там штук пятнадцать блогеров но они все медленные и конкуренции с западом не выдержат то есть запад по скорости похнется все равно
Михаил Непряхин: победила так сказать значит Мы ты Что здесь можем сделать
Михаил Непряхин: вот Мы создаем дефолтгер но Там фунты Сейчас Взглянем
Михаил Непряхин: так как для оптимизации Если Мы хотим, что-то сделать Быстро
Михаил Непряхин: войтишки Мы должны делать Бочами соответственно за тоже пишут многие бочами
Михаил Непряхин: и для того чтобы сделать шат даун грамотно и не забыть записать кетологию у него, есть синхронизация, внутренняя по Сути просто забросить блоги, Из памяти
Михаил Непряхин: Поэтому Это ну она вокруг взяла.
Михаил Непряхин: Так значит давайте Посмотрим как я его создаю ну вот я делаю диф Блогер и
Михаил Непряхин: Какие есть, Настройки настолько очень много есть, все прошу Вы можете даже подумать представить ничего не можете вот тоже говорю что начиная Дебага все Пишем де баген фу Уорнен кира
Михаил Непряхин: паник ди паник Не значит что Не
Михаил Непряхин: Никогда Не использовал вот и фатал ну соответственно
Михаил Непряхин: отличие паники От Хватало что, фатали мы сразу все закрываем прекращаем на работу
Михаил Непряхин: если делом деба то значит пишем вообще все влог
Михаил Непряхин: можно указать что, у нас ледовый момент Блогер
Михаил Непряхин: и банкет настройки Применяется для Удобного вывода в консоль
Михаил Непряхин: отключите этот трейс Мне стыдно Так как вы видели я вам рассказывал как правильно оборачивать ошибки если вы оборачиваете ошибки вам стыд трейс вообще Не Нужен Потому что то чего Он вам даст
Михаил Непряхин: вот Поэтому я его Всегда отключаю
Михаил Непряхин: значит здесь онкодинг выбран Консоль чтобы в Консоль красивого Писать и и
Михаил Непряхин: и это чтобы цветной воды был вот дальше оно Применяется и Мы Видим ошибки цветными
Михаил Непряхин: и есть функция такая посмотреть в каком месяце, Мы Сейчас находимся По коду вот Можно тут вывести циферку
Михаил Непряхин: и файл и строка где это произошло
Михаил Непряхин: ну вот мессадж какой то мы пишем значит ошибка у меня здесь она вот ты меня тестира
Михаил Непряхин: здесь я просто мессенджер вывожу на ошибки я добавляю конечно с помощью вот таких, вот запах ира верточек более которые Он выводит как Глисон. И ведь Здесь добавляется ира и вот ошибка то есть удобно добавлять контекст
Михаил Непряхин: Так чего-то еще делаем вот можно с помощью буду добавить Разные поля
Михаил Непряхин: они типизированы для того Чтобы ты быстро работала
Михаил Непряхин: то есть есть у Него Еще Вариант
Михаил Непряхин: типа шуга типа с сахаром но по мне так Неполно и этот вариант очень даже о себе, Отличный
Михаил Непряхин: и вот Мы добавляем контекст значит что У нас такой-то уровень был количество попыток три
Михаил Непряхин: Там быков, через Сколько Мы снова давайте Поспим, Секунду и снова Попытаемся сделать это ошибка
Михаил Непряхин: вместе Мы Здорово какого То пытаемся достучаться Не Получилось и Мы пишем Сколько у нас какая какой Номер попытки
Михаил Непряхин: вводится Тоже, все Это, ведь индийское на Таким образом
Михаил Непряхин: так и фототолкнув а Там Мы просто Останавливаемся и Сейчас Не хватало этого э Секситван Мы просто Завершаем программу и все
Михаил Непряхин: Если, Мы Переключаем вот в продакшн Лагерь, какие отличия что Мы делаем Вывод Две сония кнотод киносвой ок
Михаил Непряхин: короче Мы просто все Выводим Джисони То Же самое Есть люди пять уголовников ну? И
Михаил Непряхин: Пытаются понять ошибку, Ну все равно Же Мы Же постоянно читаем его Вида и Они вот страдают вот Так вот Читают Поэтому я вас призываю Всегда делать настройку для дева отдельно длядев среды
Михаил Непряхин: и для
Михаил Непряхин: и для прода
Михаил Непряхин: и чтобы вы не страдали и Удобно читали и вот время тоже Можно поправить то что-то я не сделал потому Что мне больше Нравится Другой вопрос Мы про него поговорим
Михаил Непряхин: и Гораздо Приятнее добавить в таком, режиме чем читать там за Джейсон лондон бывает очень длинный со Стык-рейсами в общем
Михаил Непряхин: Важно Иметь две, настройки для разработки и для прода и чтобы в конфиге. Была какая-то Просторопция их переключить
Михаил Непряхин: а я это делаю я Не Перемен это
Михаил Непряхин: ну вот у Меня есть перемена пройти консоль
Михаил Непряхин: если ставлю в тру то соответственно она По дефолту фолз и педефолтон отключена дляпрода, для
Михаил Непряхин: а вокальные разводки я ее Включаю Ну и понятно, что надо же как-то уровень указать у меня дай бог стоит под дефолт
Михаил Непряхин: так и мне нравится больше зеркало то есть он менее популярный в мире ну. Как бы он тоже популярный ну. Просто, как Будто
Михаил Непряхин: утоп Два наверное он Посидел просто, мне больше нравится и в целом как-то прикольнее с Ним работать мне
Михаил Непряхин: кино на проекте чаще всего встречается запах
Михаил Непряхин: ну, в последнее время вот зеркало набирает популярность но как бы Тяжело если вы уже привыкли с каким-то образом работать Тяжело Перейти на Другой,
Михаил Непряхин: значит здесь я написал то. Же самое все По функционалу вывод еще Другой и
Михаил Непряхин: ну вы вот у него, кстати вот это Тоже, немножечко тем более Человек читаемый
Михаил Непряхин: и в какой ошибке произошло действие я обычно убираю просто. Он показал и
Михаил Непряхин: в одно, может быть вам это будет важно. Поэтому это казалось все сколером
Михаил Непряхин: значит пусть они Так сису ноту немножечко другое синтаксис и и
Михаил Непряхин: вот ошибка отдельно указывается, здесь то же самое ведь, уже поля это Инт это дюрешон секунды это мессадж какой будет
Михаил Непряхин: кну фаттау естественно Тоже как без этого
Михаил Непряхин: который Тоже видел на тревое сексу
Михаил Непряхин: а Настройка его здесь ну. В общем это я вас призываю просто хочу посмотреть
Михаил Непряхин: и Так как Попадается и тот и другой вариант то ну Примерно надо видеть Из другой роли так
Михаил Непряхин: вопрос есть принципиальная Разница между сторонними воерами или просто посвящены Ну просто вкусовщина ростоцкого возвращения потому что Ну
Михаил Непряхин: а и и и проблема решено то же самое с политиками чем не библиотека как правило там, используются
Михаил Непряхин: опыт предыдущих библиотек и исправленные на ошибки вот азербайджан просто прикольный так и
Михаил Непряхин: так с контекстом надо в первый контекст посмотреть также изгнанный пессик
Михаил Непряхин: да давайте. Теперь сделаем дляминки
Михаил Непряхин: так продолжаем так значит есть такое явление как положить блогера в контекст
Михаил Непряхин: у нас в гоу есть контекст который принято пробрасывать вообще Везде там идет, запрос какой-то контекст из вызова функции
Михаил Непряхин: везде передаем и контекст в первую очередь он про дедлайн про тайм-аут
Михаил Непряхин: но вот Есть у него возможность положить туда, что то и потом это что То достать
Михаил Непряхин: так вот как я вам сказал так как блогер
Михаил Непряхин: ну блогировать принято верху на Вернем уровне
Михаил Непряхин: То в Принципе как боевые в контексте власть Нет смысла
Михаил Непряхин: но Тем Не менее Раз, Контекст может быть что-то Положено То и естественно кто-то пользуется
Михаил Непряхин: То есть мне больше нравится все-таки
Михаил Непряхин: либо глобальный блогер как турок либо через дьяволь его Куда то прикидывать
Михаил Непряхин: и вот есть третий способ, значит прокинуть его через контекст Ну практика и
Михаил Непряхин: Будто из этого Только Путаница и
Михаил Непряхин: пользы прямо скажем мало то есть больше Вреда Поэтому Не рекомендую и
Михаил Непряхин: создаем мой значит контекст просто бэкграунд дефолтный и Обычный контекст и создали мой лагерь даже все версии его создали
Михаил Непряхин: А нет Не связи А это Мы короче говоря этому экземпляру блогерам
Михаил Непряхин: нью экземп получаем Мы получаем указательный блогер и вот к этому Блогеру Мы можем добавить Некие Поля Например верша
Михаил Непряхин: в самом начале приложения мы создали и эту версию добавили богеру и теперь каждый Раз когда этот блогер мы Будем использовать
Михаил Непряхин: этот контекст будет Всегда с нами типа Удобно и То же самое Там
Михаил Непряхин: Обманул дальше у Меня в примере Это Есть Да
Михаил Непряхин: Так дальше ну метро Ты мулятся типа Я
Михаил Непряхин: как Будто бы Мы их дпс сервер Я вот получаю Пять запросов и берется Контекст изначальный Блогер Мы берем
Михаил Непряхин: и Воттойди типа От наряды четырех он год
Михаил Непряхин: Спим секундам чтобы Эти, пять город Не успели поработать вызвали Мы контроля Контроль ли Мы
Михаил Непряхин: Мы в контроле значит опять сделали блогер выезд
Михаил Непряхин: и добавили к нему еще контекст то есть типа это уже реквиста едим
Михаил Непряхин: и полчаса у нас здесь Какой то контекст. Добавили дальше этот контекст. Добавили
Михаил Непряхин: и дальше когда Мы блогер этот Будем использовать этот контекст. Уже Будет с нами
Михаил Непряхин: значит и Мы кладем теперь этот блогер в контекст
Михаил Непряхин: по ключу ну как как-то принято
Михаил Непряхин: и Вот здесь Мы уже получаем контекст
Михаил Непряхин: в котором Внутри этот блогер упакован и и Мы достаем из контекста
Михаил Непряхин: вот здесь как бы Мы достаем из контекста нечто по ключу контекст кей но вот Мы положили по Нему значит достем Тоже по Нему
Михаил Непряхин: То Что Мы Достали оно имеет Интерфейское Ниль, То есть оно не Определено Поэтому Мы кастуем тип к заблогеру
Михаил Непряхин: и есть ли у нас Окей
Михаил Непряхин: то значит блогер у нас заблогер по указателям Причем
Михаил Непряхин: и значит теперь Мы можем сделать инфо и напечатать Адапта кол
Михаил Непряхин: и мы ждем Что все наши пять запросов они будут все вершин
Михаил Непряхин: вот Этой Ноль один Ноль Но У них У всех будет свой реквизиты Давайте проверим другое. Значение
Михаил Непряхин: да нужно работать здесь У них Есть Вершин мой который был Изначально Но У всех свой крест
Михаил Непряхин: ну как бы вроде бы работает но когда будете с этим существовать на практике Будет создаваться очень много Проблем
Михаил Непряхин: потому. Что так как, у вас может быть три Варианта могирования ну как, Я сказал из контекста
Михаил Непряхин: из диая когда вы ну просто мисс питти блогер ну как познакомили Например, и глобальный мир.
Михаил Непряхин: То у вас когда вы будете видеть перед Собой могирование у вас будет как бы ну возникать вопрос
Михаил Непряхин: как вам надо будет включать Голову. А откуда он там пошел смотреть откуда он там пошел в общем замудрено получается, но мне нравится
Михаил Непряхин: Проще лучше, вот Поэтому Я добровольно Не использую с контекстом блогер
Михаил Непряхин: так вот все Значит Про блогер Мы блогер Тоже. Мы закончили Теперь Давайте посмотрим
Михаил Непряхин: как, это это все дело использовать значит
Михаил Непряхин: ну понятно, Что Раз, У нас Х Дтп сервер
Михаил Непряхин: гуртины запускаются на верхний уровень У нас Контроля
Михаил Непряхин: Там вызывают все Поэтому Мы и лагировать Тоже, Хотим, в контролере,
Михаил Непряхин: До этого значит идет, немножко. Изменение, сделан То сухо так было я добавил, пентик но так бы
Михаил Непряхин: здравствуйте расскажу свою Идею значит
Михаил Непряхин: во-первых в этом проекте используется Блогер зеремок то есть Вот этот Блогер инициативу именно эти зерог ну Почему Мне нравится больше кусочек
Михаил Непряхин: можно его иницировать Сразу живут какими то полями Там с версий
Михаил Непряхин: сверхъестественное с именем это все можно делать я здесь просто как бы Не, отключаю просто показываю что, если, Нужен какой-то контекст который глобальный будет распространяться то вот он здесь легко, задается
Михаил Непряхин: дальше я воспользуюсь. Глобальным
Михаил Непряхин: вообще везде глобально использую я его нигде не нигде в контексте не пробрасываю он не везде глобально Там и
Михаил Непряхин: значит ты для того чтобы вот здесь его Не
Михаил Непряхин: писать То есть это если бы мне надо про ошибку здесь заблокировать
Михаил Непряхин: мне бы надо было делать вот так вот ну как-то вот так вот
Михаил Непряхин: ну и здесь тоже пришлось бы делать вот так вот ну есть способ Не дублировать его а
Михаил Непряхин: Добавить его вот туда внутрь потому что когда Мы Радуем ошибку
Михаил Непряхин: о во-первых понятно что Мы Сейчас находимся в ошибке,
Михаил Непряхин: и собственно Там Мы эту ошибку, и можем заблокировать почему бы этим не воспользоваться
Михаил Непряхин: и можно было бы поместить ошибку, в блокирование ошибки вот сюда
Михаил Непряхин: но дело, в том что в этом месте нам не хватает контекста где мы Сейчас находимся
Михаил Непряхин: решается это обычно тем что вот сюда вот добавляется дополнительная информация ну типа во-первых что это дтп
Михаил Непряхин: там еще есть версия, идет на версию один надо Добавить плюс хотелось бы понимать и
Михаил Непряхин: какая ручка вот у нас ручка креет профайл,
Михаил Непряхин: итого смотрите мы уже ну дофига всего блогера а плюс это будет дублироваться
Михаил Непряхин: то есть я вообще на самом деле Показываю способ как будто. Он часто часто это Делает
Михаил Непряхин: но вот это дублирование Мне не нравится,
Михаил Непряхин: ну хочется тогда это как-то вынести в какие-то константы да сразу же а типа потом это упирается и
Михаил Непряхин: ну тогда здесь будет Конкретинация конкретинация в этом месте выглядит неуклюже то есть в целом как бы вот это вот
Михаил Непряхин: оно и какое-то какое-то такое Не очень
Михаил Непряхин: мне очень мне нравится, как он выглядит
Михаил Непряхин: просто двоеточие надо было и добавить да Двоеточек пробел.
Михаил Непряхин: А на Ууу в общем какой вариант мне Не, нравится, тем кто встречается
Михаил Непряхин: вот Поэтому есть другой способ более хитрый как и ошибку взять и контекст не потерять
Михаил Непряхин: вот для этого пригождается мимо вара
Михаил Непряхин: значит давайте посмотрим как я изменил. Мимо вару
Михаил Непряхин: миговоры у нас находятся в блоге здесь что поменялось она
Михаил Непряхин: так значит метовара на основе еды это уже смотрели я немножечко тут, добавил начну вот этого Не было
Михаил Непряхин: и вот здесь был вопрос грубо говоря вот этого Не было значит то что мы до этого смотрели
Михаил Непряхин: Мы просто создавали здесь Ва Рапер
Михаил Непряхин: чтобы Ошибку Застать где У нас вотнекдот У нас вызывается, и дальше Мы просто магируем
Михаил Непряхин: вот но хотелось бы Не просто реагировать
Михаил Непряхин: хотелось бы в зависимости От результата
Михаил Непряхин: блокировать либо, инфо либо, ошибкой и хотелось бы эту ошибку увидеть добавить плюшевите в чем дело
Михаил Непряхин: мы не Всегда хотим, нашу ошибку со всем. Стать. Трейсом как говорится ну по искусственным спектаклям даже как-то не напишем
Михаил Непряхин: показывать пользователю иногда пользователю хотелось бы дать какую-то короткую ошибку или просто, суть что, произошло а
Михаил Непряхин: нам, для себя залогировать нормально по-настоящему вот этот способ Это, позволяет, сделать
Михаил Непряхин: значит смотрите в чем, Хитрость. Мы Кладем в контекст заранее ошибку
Михаил Непряхин: Мы про контекст еще поговорим ну как бы пока контекст работы таким образом значит если, вы хотите, в контекст потом что-то добавить
Михаил Непряхин: ну Допустим вот Мы Сейчас контролировали добавить надо выше атом Генетически Да вы Не можете
Михаил Непряхин: Там это сделать вы заранее должны в Контексте туда положить
Михаил Непряхин: а Что бы Там кто-то Потом мог исправить ну. Там особенность как контекст Устроен Под капотом Посмотрим Пока Примите короче как Есть Мы заранее Кладем в контекст
Михаил Непряхин: указательно ошибку а Там Сейчас нил ошибки Нет То Есть Но Мы на Эту чайку памяти
Михаил Непряхин: пойдем в указатель в Контекст ну По ключу По какому-то если Б этот синтез говорит положи в контекст
Михаил Непряхин: по такому ключу вот, эту вот, указатель вот, на этого места дон положил, дальше
Михаил Непряхин: а Мы проверяем простите здесь как бы Мы Не Видим чтобы здесь что-то возвращало Ошибку. Мы просто Ошибку. Туда. Указатель положили если Там где-то ошибка происходит
Михаил Непряхин: То она здесь Появляется и мы ее проверяем на него если. Она не ни то мы
Михаил Непряхин: говорим что ну блогер создаем что это блогер ошибки
Михаил Непряхин: добавляем эту ошибку. И уже дальше ну еще по интересам
Михаил Непряхин: вот от ответа доля мне этот какой был и отправляем
Михаил Непряхин: Если, это не Случилось Если, там не ошибка все Окей то лок остается инфошным и медизованным
Михаил Непряхин: уровень Реагирования как инфон
Михаил Непряхин: соответственно в Записи немножечко по-другому с Этим работать. И во всех. Блогерах по-своему То есть. Все блогеры имеют разные и
Михаил Непряхин: и Еще Это Не Позволяет. Легко перейти с одного лагеря на другой потому что. Люди в целом к чему-то привыкают это все они не Хотят ничего менять
Михаил Непряхин: Поэтому и такая Сильная традиция Ну. Вот по запапу, именно, потому что?
Михаил Непряхин: И и это плохой лагерь им пользоваться не будет Поэтому разработчики блогеров выжимают все что можно ценой
Михаил Непряхин: синтаксиса то есть как бы из этого приходится делать индекс из такой который бы перформанс не Ну
Михаил Непряхин: мы не теряли на перформансе и Поэтому зравок он каждый человек который увидел он немножко странный а если ойер удобный и для робота Он обычно Он медленнее
Михаил Непряхин: а вот в каком месте мы Ошибку туда, помещаем
Михаил Непряхин: а для этого суперудобное Место, Которое мы только Что смотрели так как вот мы здесь в контроле ррендаем Ошибку Я просто добавил. Сюда контекст то есть вот Мы его получили я его сюда пробрасываю
Михаил Непряхин: и Там Внутри я из контекста Достаю
Михаил Непряхин: что То что Там Лежит По этому ключу это тот же самый. Ключ Вот он десять который Мы и здесь изначально ошибку положили
Михаил Непряхин: я Говорю есть ли что-то в Контексте по этому. Ключу
Михаил Непряхин: Ммм если Это есть. То Я его хочу привести. К указательную Ошибку дальше Проверяю Получилось Или Нет
Михаил Непряхин: если Получилось Бы Окей То Я разименовываю
Михаил Непряхин: то Место, где эта ошибка Лежит а она Лежит
Михаил Непряхин: Это Место, Этого дано Я его Я получаю доступ к этому месту в памяти
Михаил Непряхин: и говорю перепиши его но на мою ошибку вот на Эту ошибку
Михаил Непряхин: а это та ошибка которая произошла в контроле я ее здесь Получаю еще и мессадж добавляю и соответственно вот в Этом месте я с помощью контекста делаю такую штуку что у меня кусок памяти в Другом месте
Михаил Непряхин: и это просто один из способов да то есть как бы для того чтобы здесь меньше реагировать потому что это
Михаил Непряхин: здесь это удобно сделать опять, же скорее для демонстрации того что, так можно потому что, вы увидите все увидите все возможные способы как люди только
Михаил Непряхин: не придумывают вот это вот как это залогировать удобно вот мне нравится, такой способ
Михаил Непряхин: и плюс еще смотреть я здесь использую анпек и пользователю я эти все кишочки Не выбрасываю
Михаил Непряхин: я здесь в цикле Делаю ира с Анврап
Михаил Непряхин: Мы до этого Помните смотрели анураб То есть, За Один проход он просто
Михаил Непряхин: Одну матрешечку открывает смотрит Что там внутри вот я значит это делаю столько Раз сколько нужно для того чтобы достучаться до Самой последней ошибки
Михаил Непряхин: и и пользователю в Джисон я уже отдаю вот эту самую, последнюю вашу суть
Михаил Непряхин: а себе, влог я запишу ошибку ту какой она была изначально самую длинную так шаг запущен Запусти,
Михаил Непряхин: компост уже поднял. Здесь так и
Михаил Непряхин: а где оно коллер вот она познер Тоже включи
Михаил Непряхин: вот так волк чище и видите У меня ничего лишнего Нет пробуем. Делать запрос Константинович кан такша давайте
Михаил Непряхин: спиральный крейсер заводи надо создать профиля
Михаил Непряхин: так больше создали Видим Инфолог да что у нас Код Двести Пост
Михаил Непряхин: выведи мне Метод три ручку То Есть отличный Контекст у нас Есть Ммм
Михаил Непряхин: То есть Он в этом месте Видел, варя
Михаил Непряхин: Мы Проверили на ошибку ошибки Не было
Михаил Непряхин: Что все окей Так дальше Давайте Мы Него Получим
Михаил Непряхин: рос
Михаил Непряхин: Так дальше Мы его получим Но Тоже, Получилось ответил сергей
Михаил Непряхин: здесь у меня еще сделана такая штука чтобы вот адишники здесь написали здесь Тоже, как бы важно
Михаил Непряхин: чтобы влок не попадали айтишники в пути
Михаил Непряхин: а чтобы вот эту Строчку потом нужно было фильтровать отдельно. И по ней посмотреть все что было по Этой ручке
Михаил Непряхин: и сделаем ошибку, поищи несуществующий, адишник ульем четырнадцать четыре во франции
Михаил Непряхин: Видите пользователь видит регрессфель летом фонд он не видит вся кишок
Михаил Непряхин: но мне важно их посмотреть сереж и для себя я их запишу
Михаил Непряхин: а вот они кишки оркест фейлет
Михаил Непряхин: и я вижу всю Матрешку чтобы вызван познер гет профайл, и Там Мы получили нотаунд
Михаил Непряхин: и все это произошло в Этой ручке лилия
Михаил Непряхин: давайте инвалид не сделаем ее оди
Михаил Непряхин: Так ну Вот если Не валить ее иди Тоже Видим и Ошибку в боге. Ну и бог стал. Теперь ошибкой потому Что Там вернулась Ошибка
Михаил Непряхин: и Кот ответом на съ Извините и в Какой Ручке это произошло Тоже Понимание. Есть
Михаил Непряхин: Пользователь У Меня Так и от фейлет ну Мы То же самое увидим потому что ничего и Нет хм
Михаил Непряхин: в общем суть как
Михаил Непряхин: выводить какие выводить волги просто такие чтобы потом по логу вы поняли где произошла ошибка ну это все
Михаил Непряхин: то есть в этом случае вот Допустим
Михаил Непряхин: хотим, мы понять где произошла Ошибка ну для Начала Мы Понимаем какая ручка
Михаил Непряхин: и можем в Коде поискать Это место Не Соответственно
Михаил Непряхин: Делаем поиск Находим Две ручки и нас интересует гетто гет соответственно выбираем гет
Михаил Непряхин: все попали в Ручку, То есть вот ошибка произошла в Этой ручке дальше что реквест фейет
Михаил Непряхин: где Он израиль своей вот в двух местах на двух местах ну может быть и
Михаил Непряхин: но Допустим дальше почему там видимо познер раздет профайл,
Михаил Непряхин: Мы понимаем Что ошибка все равно была здесь
Михаил Непряхин: Так здесь Мы Поймем Так можем и
Михаил Непряхин: Дальше ошибка прошла Отсюда Мы Хотим, понять Внутри функции откуда Она пришла что у нас здесь у нас здесь ног фаунд
Михаил Непряхин: ой мне трудно воспользоваться гетто профайл так ищем возрасте взгляд профайл
Михаил Непряхин: у меня здесь Совпадает с названием, функции, Опять, же для Удобства для простоты и написания то Есть я использую так и так Иногда я прямо просто контекст Добавляю как Функцию Иногда расписываю в типа на Английском Языке
Михаил Непряхин: значит Ошибка прошу Отсюда.
Михаил Непряхин: Переходим По Помните У Меня есть Смоки
Михаил Непряхин: фильм трофейс Всегда, ведь затрудняет навигацию. Поэтому правда смотреть в моках Мы и не мог их нас не Интересуют муки и вот Реально нужен реальная Ручка реальная ручка здесь
Михаил Непряхин: дальше Нотаунд ну. Ищем но Фаунд и Что
Михаил Непряхин: Не Находим ну. Почему потому. Что Это уже Кастовная ошибка
Михаил Непряхин: а здесь уже ну. Давайте просто поищем нот фаунт
Михаил Непряхин: вот нутфонд, нашел здесь то есть это уже ошибка моя доменная
Михаил Непряхин: и она тут, в одном месте только
Михаил Непряхин: если не было ничего в ответе и была ошибка вот этот Погаикс и
Михаил Непряхин: можно было использовать ее но это нарушение принципа
Михаил Непряхин: и инерции независимости то Есть я Не могу
Михаил Непряхин: Нигде он Умеет адаптеров использовать эту Ошибку
Михаил Непряхин: я подразумеваю Что он плит Не в контроле это использую
Михаил Непряхин: и Поэтому я хочу конкретно эту я не использовать да Нигде ну вот я допустим захочу где-нибудь ее использовать в ликейсе захочу использовать либо в контролерах она одна у меня нет у меня Еще что есть и
Михаил Непряхин: и если используется она если
Михаил Непряхин: зависимость от пакета по икс а ее не должно быть то Есть, по чистой архитектуре и Поэтому я сделка атомную Ошибку,
Михаил Непряхин: а Она У меня Находится в пакете Намен и Поэтому Не соблюдается принцип инверсии зависимости
Михаил Непряхин: и таким образом имея и и вот поначалу такое упражнение вы должны делать то есть вы видите ошибку
Михаил Непряхин: и представьте что вы не знаете ваш код и попробуете пройти по этой Ошибке то есть вот начало Сначала Размотать
Михаил Непряхин: а попробуйте найти то Место, где она произошла сможете ли вы Это сделать Или нет если вы Это делать сделать не можете Тогда вы должны Посидеть. И Подумать
Михаил Непряхин: как Добавить, контекста к Ошибке и Что еще Можно придумать чтобы во-первых понять
Михаил Непряхин: Что Конкретно это было ну здесь и так видно Что Хтп да То есть как бы Я тут Не Добавляю в начале хтп
Михаил Непряхин: как бы и
Михаил Непряхин: По кодам По названию То есть там У Джерси си бы По-другому Выглядел Поэтому как, бы понятно, что, Это про сервер
Михаил Непряхин: понятно, что, Это ручка гет понятно, какая Это ручка
Михаил Непряхин: понятно, Какой Код был и этот уровень магирования соответственно тоже выбирается если у нас код двести то он Год инф если он больше четырехсот Или равен ему то будет и
Михаил Непряхин: и вот это вот может быть очень длинным
Михаил Непряхин: если это необходимо для того чтобы Проследить всю цепочку и самого длинная Или если вы сами Хотите. Накинуть контекста
Михаил Непряхин: но в целом я стремлюсь и
Михаил Непряхин: к лаконичности к простоте то есть грубо говоря Если, я понимаю что
Михаил Непряхин: ну, мне вот достаточно. Вот этого для того чтобы Понять контекст
Михаил Непряхин: я Не пишу Там что была вызвана Ручка из поиска гет профайл
Михаил Непряхин: с Меня вот так чаще бывает но
Михаил Непряхин: так этот пример продакшн Радио да конечно да можете правда продакшн использовать здесь все хорошо.
Михаил Непряхин: Десять. Каких-то Косяков, Нет
Михаил Непряхин: То вы чаще видеть Будьте в продакшене какие то варианты когда вера в билете не Хватает то есть логий это один из компонентов из элементов обервоерити
Михаил Непряхин: А и так вы на Текущем Этапе Вопросов нет
Михаил Непряхин: и так Как Мы уже давайте. Тогда дальше значит и давайте. Еще про контекст Поговорим контекст Очень Важная Штука для Понимания
Михаил Непряхин: чтобы закрыть Эту тему, так Вот У нас контекст расскажи мне Подробно про контекст тема Сложная Но
Михаил Непряхин: По-разному я уже пробовал ее объяснять она Плохо заходит когда ее объясняешь низкого уровня Поэтому вот тот случай когда
Михаил Непряхин: понимание низкого уровня абсолютно не облегчает. Жизнь
Михаил Непряхин: Поэтому мы больше будем, Об этом говорить и думать о как Об апе
Михаил Непряхин: Ну. И собственно когда мы Хотим? Посмотреть а Что такое контекст то Мы Видим Что Так.
Михаил Непряхин: Мы Видим Что Контекст это Не торфейс Наш контекст интерфейс с методами дедлайн Которые ничего не получают
Михаил Непряхин: возвращают Время дедлайна то Есть Мы в контексте Всегда можем проверить Есть ли Там Есть ли этот контекст Дедлайновый
Михаил Непряхин: то Есть он с Тайм-ауттом то Мы Получим точное время когда он кончится
Михаил Непряхин: ну и тут как бы поймем это дедлайновый контекст Или не за двойным Есть метод дан
Михаил Непряхин: это аналог каналов игнальных которые Мы до этого рассматривали так как Мы уже до этого Говорили о сигнальных каналах
Михаил Непряхин: индийские то примеры есть вот вместо Вот Мы до этого смотрели сигнальный канал типа Там Стоп
Михаил Непряхин: Или что-то было Закончено ну У нас два сигнальных Добычного канала либо Мы говорим, сделай что то остановись стоп
Михаил Непряхин: либо мы Хотим? Получить, сигнал о том что что то было остановлено
Михаил Непряхин: Вот и Вот этот контекст дан он используется как сигнал типа Стоп
Михаил Непряхин: типа когда мы Хотим? Сказать кому то остановись типа Хватит
Михаил Непряхин: а он срабатывает тогда когда дедлайн был достигнут
Михаил Непряхин: то есть у нас тут есть метод когда мы Можем получить время этого самого девайна
Михаил Непряхин: но когда едва не случился то здесь в этом канале просто Приходят сообщения Ну типа пустая структура то есть ничего не значит просто сам факт
Михаил Непряхин: что считайте Что канал закрыт то есть канал закрыт и каждый Раз когда вы будете
Михаил Непряхин: достучаться по контексту да но вот по этому методу.
Михаил Непряхин: Вы Всегда будете получать сообщения и
Михаил Непряхин: а еще да ошибка Победить Они Совершают Ошибку. Значит есть Еще метод ир Возвращает Ошибку.
Михаил Непряхин: Если был достигнут дедлайн то ошибка был дед Лайнок сидит
Михаил Непряхин: если контекст был отменен то Будет ошибка кэнфилд и и
Михаил Непряхин: а-ля стоп то есть типа Мы
Михаил Непряхин: Сейчас остановились ну как Бы Муку
Михаил Непряхин: грубо говоря когда вы По этому? Каналу получили сообщение
Михаил Непряхин: То Это, значит Что тот кто вас Вызывал а У нас Постоянно кто-то кого-то вызывает да Так вот значит Тот кто вас Вызывал Он вам говорит друг Можешь, закрываться уже не Интересует результат твоей работы просто выйдя из себя
Михаил Непряхин: потому что мы обычно где-то в таких местах застреваем То есть Тут у нас канал Где происходит основная Работа утверждает как есть есть есть канал Где происходит основная Работа то есть Мы Там Запустили егорутину
Михаил Непряхин: будет это канал и это канал с результатами Там будет Результат работы нашей городтины
Михаил Непряхин: и все что Мы делаем Мы ждем вот Мы блокируемся в Этом месте и Мы ждем пока Там что-то появится. Когда Там что-то появится. Значит удалось сделать свою работу
Михаил Непряхин: Мы Получим здесь результат и можем идти дальше
Михаил Непряхин: но пока, гортина не завершила вот эта работа Там, внутри, она запустилась она Там, работает мы ждем.
Михаил Непряхин: Ну а что если. Тот кто нас Запускал
Михаил Непряхин: он же может нам сказать что уже не важно можешь даже и не завершать свою работу
Михаил Непряхин: вот для этого Добавляется этот кейс
Михаил Непряхин: и Мы находимся в ожидании обоих кейсов
Михаил Непряхин: Если, наступит Раньше. Этот значит работа была завершена Можем идти дальше
Михаил Непряхин: Ну если к нам приходит контекст дан
Михаил Непряхин: это значит что тот кто, нас Вызывал он нам сигнализирует о том чтобы Мы остановились
Михаил Непряхин: какие вы можете не закладывать никакую другую логику кроме как бросай все и приходи то есть как Бы ну чаще всего в этот кейс да вы можете там чего-нибудь
Михаил Непряхин: можете просигнализировать вот этому. Дружку! Что в этом Можешь, остановиться ну, если У меня там Есть возможность такая туда придется еще один Канал чтобы Он тут возвращал два команд канала
Михаил Непряхин: а и и есть у Него
Михаил Непряхин: последний четвертый метод вэлью короче говоря вы передаете сюда ключ
Михаил Непряхин: а по нему Получаете пустой интерфейс ну и вот Таким образом мы
Михаил Непряхин: вы уже видели эту строчку То есть нам надо обязательно привести тип к Конкретному. Типу Раз это пустой интерфейс Мы должны попытаться Изставать типы и потом проверить Удачный кастинг, произошел. Удачный каст Или Нет
Михаил Непряхин: вот ну и здесь же пример как Добавить контекст
Михаил Непряхин: что-то какую-то волю положить Это делается Не методом. Это делается созданием, Нового контекста
Михаил Непряхин: и Существующего то есть он у нас есть какой-то контекст и Мы с Помощью функции венесуэлью Создаем новый контекст на базе родительского Мы Создаем дочерней
Михаил Непряхин: и в этот вечерний контекст по ключу кладем какой-то нашу валюту
Михаил Непряхин: а с помощью этого метода Мы потом эту вылю Сможем достать день на другом месте
Михаил Непряхин: как думать. Про контекст
Михаил Непряхин: так Ну это получается, у нас есть какой то родительский контекст
Михаил Непряхин: и у него может быть дочерний контекст
Михаил Непряхин: ну и вот в этот допустим дочерний контекст Мы его создадим с помощью Витэлью Мы туда внутрь к нему войдем к Нашей, Волью
Михаил Непряхин: и прикол, в том что это вэлью Из родительского контекста Мы достать не можем
Михаил Непряхин: но это вэлью Мы можем достать Из дочернего контекста
Михаил Непряхин: то есть вот если, мы вот у этого контекста вызовем метод вылью то он будет идти
Михаил Непряхин: в его родительский контекст и смотреть есть ли у Него в Илью с этим Ключом то Есть возможно здесь ключ передаем вот он проверяет с этим Ключом Есть у Него были или Нет
Михаил Непряхин: если в эльви нету
Михаил Непряхин: то он идет, следующий его уже родительский контекст и смотрят есть ли с этим ключом у него в элью
Михаил Непряхин: и конкретно как называется эта структура наверно там с точки зрения алгоритма там есть какая то логика но
Михаил Непряхин: по Сути
Михаил Непряхин: просто тут отношение такое что есть какой-то главный верхний родительский контекст он является родителем для всех последующих, контекстов
Михаил Непряхин: и вот остальные у него дети то есть это получается. Чего
Михаил Непряхин: дерево такое да получается у нас есть родители у меня дети
Михаил Непряхин: как Будто на древидна эта структура она Только по Сути
Михаил Непряхин: не с множеством листов а с одним листом все дети чуть тип това да
Михаил Непряхин: так и ну это вот когда мы че-то войдем в контекст физическое можем положить кстати здесь такой еще прикован есть
Михаил Непряхин: вот если мы имеем один ключ есть у нас какой то ключ его не рекомендуется делать строкой
Михаил Непряхин: можно сделать строкой. Но Не рекомендуется потому что может Возникнуть Конфуз рекомендуется сделать прямо. Типом
Михаил Непряхин: значит Вот допустим с этим ключом Вот этот контекст что-то положил,
Михаил Непряхин: я выдает контекст, что-то положил, с одним и Тем же Причем этот контекст, начинает читать
Михаил Непряхин: ну искать Вот делать Вот Эту Вэлью кей с Этим Ключом
Михаил Непряхин: и ближайший. Какой он идет он тот и возьмет
Михаил Непряхин: и если его надо переписать он его Перепишет, если надо просто прочитать он его прочитает вот до этого он достучаться не сможет
Михаил Непряхин: так что. Короче говоря тут такой прико что.
Михаил Непряхин: А ну вот как станет сказано связанный список ну кубки можно думать как про односвязный список
Михаил Непряхин: окей да можно думать как правда связанный список типа и и
Михаил Непряхин: ну и соответственно контекст может быть Не только Со Значением Он может быть с каким-то тителем ну То Есть тайм-тулив
Михаил Непряхин: короче времени. В жизни с каким-то временем в жизни он может быть
Михаил Непряхин: и как только вот допустим Мы здесь время жизни назначили как только это время наступило
Михаил Непряхин: ну во-первых происходит то что контекст, дан начинает работать
Михаил Непряхин: и все вот Эти вот Дочерние контексты они начинают возвращать контекст, дан ну что-то что контекст, завершен
Михаил Непряхин: и таким образом происходит пропагандистская Пропаганда вернее и Вот этого
Михаил Непряхин: что Уже Работа. Не имеет. Смысла
Михаил Непряхин: и если и так же вы руками можете отменить значит вы можете сказать вот вы в этот контекст говорите кэнсел. Отменяете его
Михаил Непряхин: и вот Эти все контексты Они отменяются но как Они отменяются
Михаил Непряхин: а они начинают возвращать контекст да
Михаил Непряхин: что-то ну Там создается доканал с пустой структурой и вот он начинает
Михаил Непряхин: когда вы его опрашиваете он срабатывает и Таким образом вот эти все товарищи
Михаил Непряхин: где они там находились Сейчас, в селекте они все сработают по контекст дону
Михаил Непряхин: вот Это, весь функционал вообще контекст изначально был придуман все-таки для тайм-аутов но вот в последующем
Михаил Непряхин: и вотсвелли тоже стал использоваться но это надо делать очень аккуратно и
Михаил Непряхин: и если это оправдано ну вот я вам показываю пример как я ошибку Допустим
Михаил Непряхин: таким образом пробрасываю между разными слоями
Михаил Непряхин: вот ну опять, же для Примера чтобы хоть, что-то показать так целом
Михаил Непряхин: ну надо стараться, По Минимуму использовать только там где без этого но вообще никак нельзя если как То Можно По Другому Без Контекста То Лучше. Без Контекста
Михаил Непряхин: вернее Без контекста с Уэлью Так значит Окей создаем Контекст, Пкграунд.
Михаил Непряхин: Что он Там по дефолту когда просто обычный контекст контекст бэкграунд это вот ошибку пустой контекст
Михаил Непряхин: почему они тут еще и друг, в друге а бэкграунд контекст и антиконтексты за пустая структура короче говоря
Михаил Непряхин: Обычный контекст это просто пустая структура и
Михаил Непряхин: а этот вообщетер он делает он Кстати говоря актер тот самый,
Михаил Непряхин: который проклят что ведь. Вы здесь прописали переменные и Это позволяет, сделать говорит термин и Это Сценарная библиотека короче говоря кост стандартной библиотеки он
Михаил Непряхин: Недиоматичный мягко говоря все и
Михаил Непряхин: ну вот если Мы смотрим Что Там Возвращаются ним Не мне мирра ни У дан ни
Михаил Непряхин: Часиков есть Еще такое явление ну вы обычно начинаете с контекстной грамоты то есть Тут
Михаил Непряхин: это сам что контекст нью-йорк Не знаю почему бы сделать Ни нью-йорк вот бэкграунд назвали есть еще контекст туда ну это типа просто семантика
Михаил Непряхин: суду контекст это тот же самый антиконтекст Поэтому
Михаил Непряхин: и использоваться типа задуманного чтобы вот когда вы не знаете какой контекст использовать вы его называете туду
Михаил Непряхин: вместо того чтобы сделать вот так конечно и значит по популярности, топ один контекст
Михаил Непряхин: ведь в чем, идея создается есть контекст бэкграунд то есть ведь это функция которая принимает брент контекст
Михаил Непряхин: вы создаете новый контекст от бекграунда
Михаил Непряхин: ну либо от какого-то который к вам пришел
Михаил Непряхин: и функция возвращает собственно новый контекст видите же как будет прикол о том Что. Когда Вы создаете Контекст оно Всегда,
Михаил Непряхин: возвращает Новый Контекст и и получается старый Контекст он его Не увидит Поэтому приходится перезаписывать Контекст
Михаил Непряхин: и вот тут старый контекст он так и останется старым а вот уже новый родительский он будет
Михаил Непряхин: Иметь, доступ наверняка как бы его родителям У него есть родитель Этого контекста
Михаил Непряхин: и функция концов это просто функция то есть У нее Сигнатура, консул. Фанк это просто функция Некая. Функция
Михаил Непряхин: ну Идея в том что когда вы ее вызовете вы закроете все этот Контекст закроется и если У Него Были дочерние контексты Они тоже все вокруг ну. То Есть вы сделаете пропаганда, Вот этого
Михаил Непряхин: все начнут возвращаться, к контекдам так что, мир пример свой сигнал создается сигнал получен сигнал типа Мы закрыли
Михаил Непряхин: сделали консол. Ну дефолт но принято вот в ферра еще его закрывать если, он будет закрыть два раза ничего Страшного поселок
Михаил Непряхин: вот и вы его здесь закрыли и соответственно получили сигнал и закрылели
Михаил Непряхин: контекст и все Дочерние контексты тоже Закрылись так
Михаил Непряхин: Там тут Трава Куда Она Читает Дороги значит Мы создали грутину сказали Что нас Интересует сигнал интертеропт сигнт сигентетом
Михаил Непряхин: который опять. Же забыла О губернаторы. Которые посылают или Нет или Это кондорца
Михаил Непряхин: и Заблокировались в этом месте все Мы заблокировали ждем
Михаил Непряхин: дальше запускается грутина в Картину Мы этот контекст передали ну и в эту группу создали тоже, передали
Михаил Непряхин: Так горки разошли воен группу по закрытию закроем и спим час спим час а и
Михаил Непряхин: и Если Мы получим Контекст дан То Мы Напечатаем Проверяем Ошибку, контекста
Михаил Непряхин: и собственно выйдем из Электората после того как Мы выйдем интеллекта а здесь ага
Михаил Непряхин: да это конечно давайте, запустим в Этой российской конструкции, о которой
Михаил Непряхин: так значит вот Мы Спим час
Михаил Непряхин: вот я нажимаю вот Пишем, получен сигнал и вот Ошибка контекста консенсуса
Михаил Непряхин: короче говоря если, бы Мы не когда Мы сигнал получили
Михаил Непряхин: Мы контекст закрыли Мы контекст закрыли и соответственно в этот контекст он Сразу, же начал читать контекст дан и Мы из этого
Михаил Непряхин: а селекты вышли Пока вы Мы не вышли Мы спали Час так аа
Михаил Непряхин: похожий функционал есть дедлайном значит например, мы также можем руками контекст отменить но мы Хотим? Сказать
Михаил Непряхин: вот от текущего момента где точнее просто сказать Время вот я Тут Через Две минуты сделал я беру Время Сейчас добавляю Две секунды
Михаил Непряхин: и говорю Что Через Две секунды Контекст сам закроется
Михаил Непряхин: ну Поэтому я здесь даже Никакие Сигналы не Слушаю просто Запускаю Уворкер у Меня, спит Час и через Два секунды он сам этот контекст дан сработает и мне Напечатан две ошибки
Михаил Непряхин: ой да
Михаил Непряхин: на ждем две секунды ой значит две секунды Прошло и Можете проверить контексте. И посмотреть
Михаил Непряхин: какая была причина то есть у нас дедлайн случился или нас отменили
Михаил Непряхин: работа с дедлайнами Не Всегда удобна Поэтому тут же появилась другая, обертка контекста и моут и тайм-аут используется Гораздо чаще
Михаил Непряхин: контекст тайм-аут это тот же самый дедлайн просто вывод вместо этого
Михаил Непряхин: чтобы вот это вот здесь написать длинна
Михаил Непряхин: вы прямо здесь пишете через сколько через Две секунды а у остального Кот один и тот же контекст, дедлайн почти не используется вот контекст ястремал вот этого трево
Михаил Непряхин: а это топ- два после конца перча ведет себя один в один как контекст дедлайн тоже Час две секунды
Михаил Непряхин: ну я видимо десять да этот десять бурутин запустил
Михаил Непряхин: вот вот это вот используется Чаще и руками тоже, Всегда, можете запустить допустим вы делаете запрос куда-то
Михаил Непряхин: У вас Не сервис вы в него делаете запрос говорите значит ну даю пятнадцать секунд если ты за пятнадцать секунд Не выполнишься
Михаил Непряхин: То давай, наступит и сработает в этот Контекст дан
Михаил Непряхин: То есть Видите как, бы никакой могилы да Не То что Там что-то само. Делать Нет просто вы как бы говорите через Пятнадцать секунд хочу
Михаил Непряхин: чтобы Вот этот канал Сработал чтобы из этого канала Я мог читать пустую структуру
Михаил Непряхин: и все как бы вот в этом есть механизм если вдруг вы Не используете селект
Михаил Непряхин: или используйте селект Но у вас Нет кейса с контекст данным
Михаил Непряхин: То вот этот ваш дедлайн он бесполезный ну только если вдруг У вас Там от Него Еще дети какие-нибудь не Появились Тогда Они Там может быть дай бог
Михаил Непряхин: и они Там будут использовать контекст дан
Михаил Непряхин: ну то Есть кто-то же должен обработать Этот сигнал который будет послан когда этот Едва не случится
Михаил Непряхин: и У вас Есть возможность руками если вдруг вы поняли Что вот Пятнадцать секунд еще Не, прошло
Михаил Непряхин: но вот по Коду вы поняли уже Не, имеет смысла ждать прошло Пять секунд всего лишь
Михаил Непряхин: вроде как я Раз сделали, канцел, и тоже сработает контекст дан и все как бы и уже не надо было ждать, пятнадцать секунд вы можете хоть, руками его закрыть хоть, через пятнадцать секунд а сам закроется
Михаил Непряхин: а и Всегда когда дело хотят больше пропустить запросы. Нужно Добавить контекст и автомат да по-хорошему да
Михаил Непряхин: то есть это и есть способ, как сделать тайм аут на запрос да потом по хорошему
Михаил Непряхин: Всегда когда делать их тут опять. Же все запросы
Михаил Непряхин: даже Пусть лучше сделать большой тайм-аут чего вообще Не делать потому Что это вас спасет от медленных запросов Которые просто свисают на той Стороне
Михаил Непряхин: так Им с вэлью Да и тот самый контекст с уэлью
Михаил Непряхин: который не рекомендует использовать но важно не узнать что когда нибудь все равно пригодится ну или попадется
Михаил Непряхин: как бы мощный Ему конечно очередь но вот очень легко им, стрелять в ногу
Михаил Непряхин: почему ну потому, что он создает второй параллельный и
Михаил Непряхин: ну то есть выживет можете вообще аргументы все передавать в контексте я такие проекты видел,
Михаил Непряхин: то есть э зачем нам
Михаил Непряхин: а Вот зачем нам.
Михаил Непряхин: А Передавать какой-то Вот У меня Контроль получили Мы какой-то импульт что тут, Вот
Михаил Непряхин: где То я Создаю короче Профиль
Михаил Непряхин: А зачем это мне передавать структуру отдельно. Отдельным. Аргументом я ведь Могу ее в контексте затолкать
Михаил Непряхин: вообще легко я беру и заталкиваю в контекст
Михаил Непряхин: передаю дальше везде только контекст смотрите если натура. Получается короткой а и
Михаил Непряхин: вот новый профиль зачем мне туда вот это все передавать я просто к контексту передам а здесь внутри я из контекста что достану не надо эту кузьматуру будет для написать
Михаил Непряхин: и так далее то есть можно вообще везде просто Передавать Контекст
Михаил Непряхин: и все аргументы. Передавать Через этот! Контекст Я Не Шучу Реально такой Проект, Видел жизнь Полнейшая. Потому. Что У вас все сигнатуры становятся. С контекстом ну. Представляете вот У вас нету вот этих вот всех
Михаил Непряхин: а У вас вот просто. Все сигнатуры вот Так вот вам даже смысла Нет
Михаил Непряхин: Там какие-то Не трофейцы Делают Потому Что вот Тут, все Методы вот так вот выглядят
Михаил Непряхин: вы абсолютно Не понимаете Что У вас происходит и и и
Михаил Непряхин: Пустых интерфейсов То есть когда вы Уэлью Получаете видите У вас тут пустой интерфейс То есть вы в Принципе превращаете сразу в Голову. Динамический язык. И у вас вот везде появляются вот эти проведения Типов
Михаил Непряхин: естественно. Иногда вы забываете. Их проверить на коррекцию вот так вот получаете здесь в элью начинаете с Ним дальше работать и уловите не упомянет ресепшн ну и все Проект умирает просто
Михаил Непряхин: Поэтому Мне так Это кажется, вот только кейс и Там где вы понимаете Что он без этого никак и ну. Очень-очень ограничен То Есть даже угер Я Не Рекомендую. Прокидывать через Контекст
Михаил Непряхин: значит новым Давайте посмотрим на и Пять значит
Михаил Непряхин: Есть Ключи По которым мы в Контексте Что кладем и по которым Мы Достаем
Михаил Непряхин: опять же Не рекомендуется делать Строку почему потому Что
Михаил Непряхин: любые другие Пакеты тоже могут случайно использовать этот Ключ вы перезапишите Один, и тот же Ключ
Михаил Непряхин: тот пакет Был думать что там Это же его Ключ Был а Другой как я Думал что это его ключ они будут конфликтовать получите гонку данный Внутри контекст это в Принципе такой вариант который бажить не очень весело
Михаил Непряхин: Поэтому лучше, эксклюзивный типизированный ключ вот такой
Михаил Непряхин: он точно уникален на один пакет никак Не перепутайте
Михаил Непряхин: и все еще и приватный Так чтобы вообще нафиг никакой другой пакет не получил. Доступ к вашему ключе
Михаил Непряхин: и понятно, что. Если вы хотите, нескольких знаков. В одном пакете писать О другом читать тогда его надо Будет делать публичным чтобы вы Здесь Могли Записать А там кто-то мог. Прочитать
Михаил Непряхин: значит как. Пишем Пишем с помощью Виттуэлью то есть создаем новый контекст из родительского,
Михаил Непряхин: создаются Вечерний и в этот вечерний с помощью этого ключа добавляется вот этого значения
Михаил Непряхин: ну, а читаем с помощью Вот этого Метода интерфейса Вэлью
Михаил Непряхин: и просто говорим По Какому ключу Мы Хотим? Что-то достать Вот и Это достаем
Михаил Непряхин: и дальше надо еще Это дело привести ну Поэтому часто используют Вот Так Вот совмещают
Михаил Непряхин: здесь сразу Она поручает. Окей
Михаил Непряхин: а ну как бы и все Ммм
Михаил Непряхин: Так если мы По несуществующему ключу пытаемся достать чертова из контекста но мы получим дамблдор
Михаил Непряхин: вот соответственно он был отравлен нилу если, ничего нет
Михаил Непряхин: ну и это Тоже Будет работать ведь как бы оно не приведет да и все Вы самой кажетесь Вы здесь
Михаил Непряхин: Так страшилки с контекстом проснул просто на всякий случай вдруг как бы кто-то с динамического языка захочет этим увлекаться
Михаил Непряхин: и последний премьер так значит Вот как Раз про
Михаил Непряхин: то Что. Есть такой бак о котором, вообще все забывают и а и
Михаил Непряхин: Так ну создаем контекст с тайм-аутом
Михаил Непряхин: Э три контролера круче третий по Запросам не делаем
Михаил Непряхин: и в контроле мы подключу контекст кей вадима май валью один клоун
Михаил Непряхин: я бы даже назвать так как значит ай эум айм Контролер вот Так сделал
Михаил Непряхин: потом значит Мы Из Него создаем еще одну, Картину Хэндлер и нравится
Михаил Непряхин: Так и Он короче вызывает Эту Грудину и спит Спид
Михаил Непряхин: потом Хендлер запускается вызывает другую грудину и Тоже спит ну до тех Пор пока кандидат Не будет
Михаил Непряхин: ю кейс запускается и Питает контекст по этому ключу
Михаил Непряхин: и он сможет достучаться только вот он будет видеть это значение
Михаил Непряхин: то есть типа он думает что я Сейчас вот до этого значения Дойду, достучусь типа его интересует контроля а вместо этого он видит
Михаил Непряхин: человечка посередине который втизнут попал между ними и записал свое, значение по этому ключу, и
Михаил Непряхин: так ну все он завершается у и мы получается видим айэмхендр,
Михаил Непряхин: из контекста так где вы Хотите, в контекстечитаться
Михаил Непряхин: да ведь Айм хендер вот а если бы вот этот
Михаил Непряхин: персонаж посередине ничего Не записал То, вы бы достучались он до сюда Айэмп, андроллер вот
Михаил Непряхин: три секунды тайм аут ну и Потом они все закрываются
Михаил Непряхин: и Что если вы берете и с одним и тем же ключом на разных уровнях в разных контекстах
Михаил Непряхин: и записываете, то вы из Последнего, и
Михаил Непряхин: вот на этом на этом все давайте, значит
Михаил Непряхин: как вам Контекст все ли понятно, вопрос есть ли Вопросы, так что, можно
Михаил Непряхин: что можно стоит ставить в контексте кроме ракетастыйди вот реквиста иди это топ, динчу я вижу именно, вот контекст мисс уэлью а вот это провали горы
Михаил Непряхин: так-то чаще, всего контекст все-таки старим молотом но вот если, Мы в элью говорим то Там обычное кресло иди
Михаил Непряхин: на втором месте наверное Блогер Блогер часто бывает ну и ну и
Михаил Непряхин: трейсинг, использует контекст то есть а Трейсинг, он же пронизывает все
Михаил Непряхин: а все структуры эти все слои и вот смотрите когда мы
Михаил Непряхин: Круиз кейси. Например, Трейсинг, воттон смотрите что сделать Рессинг, он Берет Текущий контекст и Возвращает в другой контекст
Михаил Непряхин: зачем а потому. Что он Берет Текущий контекст и ну
Михаил Непряхин: он там временную Медку ставит он Там контекст добавляет вот этот Вот что Сейчас Уже Другой Спан начался вот этот вот
Михаил Непряхин: и соответственно создает Другой контекст Там внутри даже можно Глянуть шампанское
Михаил Непряхин: Греф оа и Вот Видите короче все Не получится быстро, Снять
Михаил Непряхин: и открывает этот контекст оттуда берет данные и создает новые и записывает их сюда
Михаил Непряхин: вот, да наверное даже вот, и
Михаил Непряхин: noise а я наконец понял напишем например контекст ту или точка Старинг,
Михаил Непряхин: Так потому, Что Мы не знаем Что в общем да Мы не знаем Что были то Есть как, бы ну вот так вот короче какой у нас этот
Михаил Непряхин: контракт Что Мы и и ну вот топ Один, это Мы просто проверяем контекстедан, сигнальный канал
Михаил Непряхин: вот и Мы вот вот имеем вот этот вот универсальный метод который возвращая трени,
Михаил Непряхин: он Не, типизированный Поэтому мы вынуждены приводить этот тип так всего вопросов больше Нет
Михаил Непряхин: и насколько вам Сложна тема показалась контекстом то есть у контекста очень сложная тема на самом деле Поэтому они прямо уделили довольно много Времени этому. Ну и вообще обработка ошибок Видите как оно само связано
Михаил Непряхин: сложно ну слушать реально сложно относиться
Михаил Непряхин: если. Вы как бы чувствуете себя силы можете зайти в пакет контекст и посмотреть как они тут устроены но здесь ну
Михаил Непряхин: на семьсот строк
Михаил Непряхин: и есть еще парочка контекстов про которые Я вам Не сказал они Появились буквально вот там версию Одну версию назад вот из Тайм-аутка
Михаил Непряхин: короче Не используется и вот и они вот Так как они вот все такие матрешечные
Михаил Непряхин: ну как типа Одно, связанные списки да получается Сейчас найди допустим
Михаил Непряхин: Еще избежал кенсел Сейчас будет канцл возни на нем
Михаил Непряхин: тарас Кендсон
Михаил Непряхин: Эндрюкин текст вот как выглядит контекст значит в контексте
Михаил Непряхин: есть контекст ну собственно на родительский вот он родительский
Михаил Непряхин: ну да Это получается одно, связанный Список вот он Мы имеем доступ только к родительскому контексту больше никакому
Михаил Непряхин: а у нас тут, миютакс у нас тот томик на дан и У нас дети то есть Мы еще
Михаил Непряхин: канцлер это Интервью, боже мой с Пустыми структурами то есть Там вот эта Пропаганда чтобы как бы
Михаил Непряхин: когда Мы делаем да ой вели-то наступает
Михаил Непряхин: Вот видите пропаганде Клянцева как он пропугаться делает концово пенсо это родитель noise
Михаил Непряхин: ну Нет решил, что-то на эльфийском что-то сложно так. С Ходу Это Не Читается То Есть когда-то я это прямо, разбирался как мне надо досконально работать но это невозможно он еще в грурутины хотя не он господи
Михаил Непряхин: очень сложно это реальность можно мозг вносящая структура
Михаил Непряхин: этот контекст вот Поэтому вот Гораздо проще объяснить просто вот как он себя ведет про внутренние устройства контекст ну, слава богу никто Не спрашивает
Михаил Непряхин: вот но на собесах соответственно вы Все равно будете ну
Михаил Непряхин: этот ближе мидом плюс синер уровень когда вы селекты пишете Еще вот
Михаил Непряхин: и просто контекст данте вы должны знать как работает как минимум ну. И делать ограничения на запросы к чему-либо каким-то другим сервисам делать Титель дай Ему от вернее
Михаил Непряхин: три моего отключения черный запрос никак Не могу понять и рассказ.
Михаил Непряхин: Оно Сложная рента я даже вот примеры пытался когда привести то есть
Михаил Непряхин: ну. По Сути видите в чем фишка
Михаил Непряхин: раз-раз Интервью Это ну оперу да ошибка Это интерфейс
Михаил Непряхин: ошибка Это Нетрофия Раз и Не Торопились значит У Него есть два Указателя ну или так сказать можно думать об этом как о двух полях а это тип
Михаил Непряхин: и это Вэлью как проверить на тип талия это ошибка вот с помощью ис
Михаил Непряхин: ну еще есть тип а как проверять на тип он с помощью с то есть как бы это с оно Родилось просто ну Так как есть типа у интерфейса а ошибка это не трофеи то значит и можно проверить на тип и так оно и появилось
Михаил Непряхин: но в целом По жизни оно практически не используется
Михаил Непряхин: ну просто когда Попадется какой-то пример хороший где это заюзано вы и на этом примере поймете вот зачем оно здесь было надо зачем мы хотим, проверить
Михаил Непряхин: тип, является ли эта ошибка этим типом
Михаил Непряхин: вот но Так по жизни это очень редко используется встречаться
Михаил Непряхин: Так Окей ладно все тогда вроде надеюсь и голос подвел
Михаил Непряхин: вот все тогда давайте всем спасибо всем пока увидимся на следующей, неделе да.