ASP.NET Global Exception Handling | Глобальная Обработка Исключений

  Рет қаралды 11,969

codaza

codaza

Күн бұрын

Пікірлер: 53
@codaza-channel
@codaza-channel 2 жыл бұрын
Удобная навигация по видео :) 0:00 - Начало 1:19 - В чём состоит проблема? 3:22 - Решение: Global Exceptions Handling 5:22 - Live example 7:13 - Пример: Создаём проект в Visual Studio 2022 (.NET6)
@alexanderspiegel6747
@alexanderspiegel6747 12 күн бұрын
Роберто … :-) Чувство юмора очень важно в наше время. Спасибо за видео
@pixelsaysmeow
@pixelsaysmeow 4 ай бұрын
Очень качественный контент, мне 29, работаю первый год, свитчер из околоинженерной темы. Нашла ваши видео категорически полезными. Благодарю и желаю удачи
@firemanhood1526
@firemanhood1526 2 жыл бұрын
Было бы круто еще: 1) Как работать с http, формирование запросов, куки, хедеры и т.д 2) Работа с кешем 3) Аутентификация и авторизация, роли 4) Горячие клавиши и фишки в IDE
@АлександрЧмакедонский
@АлександрЧмакедонский 2 жыл бұрын
Невероятно потрясён качеством контента. Автору моё почтение. Желаю всех благ в развитии канала!
@chinchilla898
@chinchilla898 2 жыл бұрын
Большое спасибо за качественную информацию! Очень помогает в профессиональном плане!
@ДмитрийКондратенко-б5ь
@ДмитрийКондратенко-б5ь 2 жыл бұрын
Очень понятно, напишу глупо но такая подача материала интереснее чем читать msdn)
@anonim6364
@anonim6364 2 жыл бұрын
Видос очень крутой, понятно всё с полу слова
@marksreider7645
@marksreider7645 2 жыл бұрын
Очень познавательное видео! С разъяснением миллионом нюансов, спасибо за труды сенсей!
@islommakhsudov5866
@islommakhsudov5866 2 жыл бұрын
Спасибо большое за ваш труд!!!
@suiqrim
@suiqrim 2 жыл бұрын
Шикарное видео и очень ценное. Все что надо есть. Правда ближе к концу я перестал понимать что за методы описываются, но это дефолт))
@firemanhood1526
@firemanhood1526 2 жыл бұрын
Лучший👍💯 ждем еще инфу
@exAlexey
@exAlexey Жыл бұрын
Спасибо за ролик! Хотелось бы увидеть видео сравнение всех способов обработки исключений, в том числе и для mvc проекта. Допустим я использую реализацию для IExceptionFilter интерфейса.
@winstochurgle9133
@winstochurgle9133 2 жыл бұрын
Лучший, просто лучший.
@DENDYTWOO
@DENDYTWOO 2 жыл бұрын
Спасибо за видео!
@Leonidn1972
@Leonidn1972 2 жыл бұрын
Thanks a lot. Content super usefully.
@codaza-channel
@codaza-channel 2 жыл бұрын
You are welcome 🙂
@alexwexov4298
@alexwexov4298 2 жыл бұрын
Great !
@syrymjoli
@syrymjoli 2 жыл бұрын
Я Сырым подписка +, спасибо автору
@codaza-channel
@codaza-channel 2 жыл бұрын
Привет Сырым! Добро пожаловать на борт! 🙂
@syrymjoli
@syrymjoli 2 жыл бұрын
@@codaza-channel 🤓🤓🤓
@haruthovsepyan5347
@haruthovsepyan5347 2 жыл бұрын
Cool !!!
@clutchmeisteryo9831
@clutchmeisteryo9831 Жыл бұрын
А зачем в ErrorDto есть поле StatusCode которое по сути дублирует HttpStatuscode, который в свою очередь внешняя система и так может получить из ответа?
@777homosapien
@777homosapien 2 жыл бұрын
Здравствуйте! Спасибо за видео, подскажите как Вы относитесь к обработки ошибок через var contextFeature = context.Features.Get(); После проверяем его на null и если фича содержит информацию по ошибкам то можно добавить соответствующие статусы с использованием swith context.Response.StatusCode = contextFeature.Error switch { _ => StatusCodes.Status500InternalServerError }; Я его использую в своих проектах. Подскажите какой способ лучше? Спасибо!
@codaza-channel
@codaza-channel 2 жыл бұрын
Здравствуйте! Да, это еще один распространённый способ обработки исключений. Лично для меня, использование middleware проще. Возможно, существуют тонкие отличия в применении этих способов, но мне не приходилось сталкиваться с ними в решении реальных бизнес-задач. Если вам удобно пользоваться IExceptionHandlerFeature или в вашей команде так принято, то я не вижу в этом проблемы. Если вам удастся узнать о важных отличиях, буду рад если поделитесь информацией 😊
@inskips
@inskips Жыл бұрын
Приветствую. Склонировал ваш репозиторий, появился вопрос. При отправке запроса IDE тормозит на исключении и только потом проходит по пайплайну и обрабатывает исключение. Подскажите как это исправить?
@juliusmalkov9620
@juliusmalkov9620 2 жыл бұрын
а в response в .net core 3.1 так же можно вставить дто?
@codaza-channel
@codaza-channel 2 жыл бұрын
Нет, метод расширения WriteAsJson работает для версий ASP.NET Core 6.0 и ASP.NET Core 5.0.
@DF-ov1zm
@DF-ov1zm Жыл бұрын
Ребятушки, пожалуйста НИКОГДА так не делайте как автор в этом видосе, НИКОГДА 1) не отключайте защиту от нуллреференсов (она заставляет вас учиться писать код правильно, понимать что вы пишите и защищает от 99% косяков, в которые вы без неё обязательно вляпаетесь) и 2) не обрабатывайте исключения не явным образом в миддлвэйре (вы так никонда не научитесь работать с ошибками, обработка исключений - НАМНОГО сложнее, чем просто логирование.. и для логирование исключений есть специальные инструменты и стандартные подходы, которые не имеют ничего общего с глобальной обработкой, вы легко можете потерять работу и получить волчий билет на всю жизнь, если не правильно обработаете всего одно, но очень важное, исключение.. а вы обязательно его не обработаете, если будете всегда ловить их глобально и не научитесь работать с ними правильно). Вы сами себя закопаете в яму говнокодерства в самом начале пути и выбраться из этой ямы потом будет очень очень сложно. Это самые вредные советы, какие только можно дать начинающим разработчикам. Я вообще сначала подумал, шо автор троллит просто, но нет, он серьёзно..
@rar24
@rar24 Жыл бұрын
пример правильной обработки ошибок можно?
@DF-ov1zm
@DF-ov1zm Жыл бұрын
@@rar24 пример правильной обработки ошибок - это как минимум 1) определить точечно где и что может пойти не так и чем это грозит (в том числе проверить какие эксепшен могут кидать те методы, которыми вы пользуетесь и в каких ситуациях) 2) спланировать поведение системы в случае если что то пошло не так: откатить ранее сделанные изменения если возможно, заинфорсить политику ретрая (или вырубить серкут брейкер) если возможно 3) "упасть" как можно скорее (для чего и существует те самые эксепшены), что бы не допустить усугубления ситуации 4) сообщить в систему мониторинга о своём состоянии. Все это требует точечного подхода и понимания: как работает ваше приложение, что может пойти не так, что делать если что то пошло не так, в каких случаях ошибки можно игнорировать, а в каких нельзя. В случае каких то серьёзных ошибок у вас обязательно должны быть данные о том, что произошло и почему. Что бы можно было 1) постфактум исправить состояние, которое возникло по ошибке 2) проанализировать что пошло не так (Root cause analysis, RCA) и что сделать, что бы это не повторилось. Эксепшен нужно обязательно уметь отлавливать и вообще правильно с ними работать, это чрезвычайно полезный инструмент в любом рекавери и RCA.
@sanchous177
@sanchous177 Жыл бұрын
Про нуллабле контекст я согласен с вами, его ни в коем случае не надо отключать, так ide будет вас заставлять писать проверки на null. А вот по поводу глобальной обработки исключений, вроде в аспнет 7 исключения в запросах не крашат приложение, а логгируются по дефолту. Или я ошибаюсь?
@DF-ov1zm
@DF-ov1zm Жыл бұрын
@@sanchous177 дело же не в крашах, это как раз меньшая из проблем.. дело в навыках обработки ошибок
@АртемийКонь
@АртемийКонь 7 ай бұрын
​@@DF-ov1zmГде можно почитать о правильной обработке ошибок? Как насчёт функциональной обработки с помощью result pattern?
@PoWeRMeH21
@PoWeRMeH21 2 жыл бұрын
Хорошее видео) но как ловить эксепш если юзер не авторизован или например не имеет достаточно прав? Даже если в пайплайне встроить самым первым данный middleware ошибку он не перехватывает(
@PoWeRMeH21
@PoWeRMeH21 2 жыл бұрын
UPD: разобрался. Забыл что добавил кастомный AuthorizationHandler, и если в нем не выкидывать ошибку а просто фиксировать context.Fail(); то и try catch ничего не поймает
@СерёгаСокольский
@СерёгаСокольский 2 жыл бұрын
А где использование переопределенного toString()?
@codaza-channel
@codaza-channel 2 жыл бұрын
Внимательный зритель на вес золота 🙂 Конвертация в json не требуются, так как этим занимается метод WriteAsJsonAsync() в HttpResponse. В видео я сделал это излишне. В исходниках проекта на GitHub я убрал лишние конвертации. Спасибо за внимательность! 👍
@shakotkopavlo
@shakotkopavlo 2 жыл бұрын
Почему метод UseMiddleware в пейплайн с хендлером вставляеться в самое начало? Почему не после авторизации? Или в конец? Или нету разницы вообще?
@ДмитрийМитяев-е6ы
@ДмитрийМитяев-е6ы 2 жыл бұрын
Потому что мы хотим отлавливать исключения, которые могут произойти в любом middleware выше по стеку вызова
@zergzerg4844
@zergzerg4844 2 жыл бұрын
не ставил себе студию 2022, разрабы что, избавились от класса startup в шаблонах? И почему класс Program так странно выглядит, без объявления класса и код не в блоке, какие-то странные нововведения?
@Позитивныйчел-ш3ж
@Позитивныйчел-ш3ж 2 жыл бұрын
.NET 6 поищи, какие нововведения в нём, там есть ответы на твои вопросы, и нововведения эти совсем не странные, а логичные, удобные и понятные.
@zergzerg4844
@zergzerg4844 2 жыл бұрын
@@Позитивныйчел-ш3ж ок, понял
@anesens8905
@anesens8905 2 жыл бұрын
Автор, а вы случаем не переводили Пиратов карибского моря ? Первых 3 части
@codaza-channel
@codaza-channel 2 жыл бұрын
Увы 😞
@syrymjoli
@syrymjoli 2 жыл бұрын
#Codazastyle видео будет про что такое миделворе ?🤯
@codaza-channel
@codaza-channel 2 жыл бұрын
В этом ролике мы уже посмотрели на яркий пример использования middleware. Буду иметь ввиду, что хотелось бы поговорить о middleware отдельно.
@ШироковАлександр-х7п
@ШироковАлександр-х7п 2 жыл бұрын
Кто такой этот Roberto?
@codaza-channel
@codaza-channel 2 жыл бұрын
О Roberto очень мало информации. Известно лишь что он весьма ценный сотрудник для организации.
@messirekhagen
@messirekhagen 2 жыл бұрын
ля, я уснул(
@codaza-channel
@codaza-channel 2 жыл бұрын
😥
@IvaNFallout
@IvaNFallout 2 жыл бұрын
Переопределяли ToString() для класса ErrorDto, но так и не воспользовались им 🥹
@codaza-channel
@codaza-channel 2 жыл бұрын
Да, вы правы. В комментариях ниже уже указывали на это. Повторюсь: Конвертация в json не требуются, так как этим занимается метод WriteAsJsonAsync() в HttpResponse. В видео я сделал это излишне. В исходниках проекта на GitHub я убрал лишние конвертации. Спасибо за внимательность! 👍
C# Delegates Делегаты
18:14
codaza
Рет қаралды 90 М.
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 59 МЛН
快乐总是短暂的!😂 #搞笑夫妻 #爱美食爱生活 #搞笑达人
00:14
朱大帅and依美姐
Рет қаралды 13 МЛН
From Small To Giant 0%🍫 VS 100%🍫 #katebrush #shorts #gummy
00:19
C# ASP.NET Core 5 | Hangfire
24:30
codaza
Рет қаралды 10 М.
C# Proxy Заместитель | Design Patterns
28:51
codaza
Рет қаралды 19 М.
Вопросы собеседования на C# программиста
21:04
Програмысли Влог
Рет қаралды 68 М.
Clean Architecture with ASP.NET Core 6
29:58
dotnet
Рет қаралды 389 М.
Марк Шевченко - Микросервисы на C#
1:02:10
coco在求救? #小丑 #天使 #shorts
00:29
好人小丑
Рет қаралды 59 МЛН