Size: a a a

BY Microsoft .NET User Group

2020 March 03

V

Vladislav in BY Microsoft .NET User Group
Не отвечает на вопрос "где исключения ловить", но близко к теме https://docs.microsoft.com/en-us/archive/blogs/ericlippert/vexing-exceptions
источник

V

Vladislav in BY Microsoft .NET User Group
И много интересного про обработку ошибок было здесь, но это уже совсем далеко от темы
http://joeduffyblog.com/2016/02/07/the-error-model/
источник

A

Anatoly in BY Microsoft .NET User Group
Andre
Да, банальная и основанная на опыте, но стало любопытно, есть ли формальное описание
Нет его, очевидно :)
источник

AT

Alexey Tkachenko in BY Microsoft .NET User Group
Делай хорошо, будет хорошо. 😜
источник

AP

Arciom Prudnikaŭ in BY Microsoft .NET User Group
Alex B
Я бы еще добавил, что не стоит на исключениях пытаться строить exec/control flow.
+
источник
2020 March 04

DP

Dmitry Protko in BY Microsoft .NET User Group
Я походу неправильно использую исключения. Например если для выполнения запроса из базы данных внутри сервиса достается сущность по id, но ее нет, вместо того чтобы возвращать ошибку из сервиса в контроллер для отправки ответа 404 проще вызвать исключение в стиле NotFoundException, перехватить его в middleware и отправить ответ клиенту. Мой подход почему-то не очень хорошо оценивают, плюются кислотой и пишут километр костылей для возвращения информации об ошибке без исключений
источник

AP

Arciom Prudnikaŭ in BY Microsoft .NET User Group
Dmitry Protko
Я походу неправильно использую исключения. Например если для выполнения запроса из базы данных внутри сервиса достается сущность по id, но ее нет, вместо того чтобы возвращать ошибку из сервиса в контроллер для отправки ответа 404 проще вызвать исключение в стиле NotFoundException, перехватить его в middleware и отправить ответ клиенту. Мой подход почему-то не очень хорошо оценивают, плюются кислотой и пишут километр костылей для возвращения информации об ошибке без исключений
Ну вот ты и строишь логику на исключениях. Скажи, разве отсутствие данных в базе это исключительная ситуация?
источник

DP

Dmitry Protko in BY Microsoft .NET User Group
Смотря как посмотреть. Если и не считать ситуацию исключительной, такой метод передачи ошибки логики работы сервиса удобнее, чем создавать глобальный объект на поток/запрос для записи ошибки, создавать единую оболочку для ответа от сервисоов, записывать ответ клиенту внутри сервиса и прочие методы передачи ошибки
источник

E

Ed in BY Microsoft .NET User Group
Dmitry Protko
Смотря как посмотреть. Если и не считать ситуацию исключительной, такой метод передачи ошибки логики работы сервиса удобнее, чем создавать глобальный объект на поток/запрос для записи ошибки, создавать единую оболочку для ответа от сервисоов, записывать ответ клиенту внутри сервиса и прочие методы передачи ошибки
Есть и те кто считает что исключения это бич дотнета и всегда пишут свои враперы
Тонкая грань между валидацией и когда в базе нет данных
источник

VS

Vladimir Shchur in BY Microsoft .NET User Group
Dmitry Protko
Смотря как посмотреть. Если и не считать ситуацию исключительной, такой метод передачи ошибки логики работы сервиса удобнее, чем создавать глобальный объект на поток/запрос для записи ошибки, создавать единую оболочку для ответа от сервисоов, записывать ответ клиенту внутри сервиса и прочие методы передачи ошибки
Оба подхода имеют право на жизнь. Разница будет чувствоваться на больших объемах кода. Если у тебя все такие эксепшны будут продолжать обрабатываться в одном месте, то это ок. Как только обработка начнет размазываться по разным местам - управляться с ошибками будет проще чем с исключениями.
источник

A

Anatoly in BY Microsoft .NET User Group
Dmitry Protko
Я походу неправильно использую исключения. Например если для выполнения запроса из базы данных внутри сервиса достается сущность по id, но ее нет, вместо того чтобы возвращать ошибку из сервиса в контроллер для отправки ответа 404 проще вызвать исключение в стиле NotFoundException, перехватить его в middleware и отправить ответ клиенту. Мой подход почему-то не очень хорошо оценивают, плюются кислотой и пишут километр костылей для возвращения информации об ошибке без исключений
нормальный подход
источник

A

Anatoly in BY Microsoft .NET User Group
Vladimir Shchur
Оба подхода имеют право на жизнь. Разница будет чувствоваться на больших объемах кода. Если у тебя все такие эксепшны будут продолжать обрабатываться в одном месте, то это ок. Как только обработка начнет размазываться по разным местам - управляться с ошибками будет проще чем с исключениями.
телеге нужны эмодзи на сообщениях. плюс один
источник

A

Alexey in BY Microsoft .NET User Group
Anatoly
телеге нужны эмодзи на сообщениях. плюс один
есть телеграм боты которые позволяют это делать)
источник

RR

Roman Roman in BY Microsoft .NET User Group
Dmitry Protko
Я походу неправильно использую исключения. Например если для выполнения запроса из базы данных внутри сервиса достается сущность по id, но ее нет, вместо того чтобы возвращать ошибку из сервиса в контроллер для отправки ответа 404 проще вызвать исключение в стиле NotFoundException, перехватить его в middleware и отправить ответ клиенту. Мой подход почему-то не очень хорошо оценивают, плюются кислотой и пишут километр костылей для возвращения информации об ошибке без исключений
Чувак, я тоже так делаю, дай пять ))
источник

RR

Roman Roman in BY Microsoft .NET User Group
Arciom Prudnikaŭ
Ну вот ты и строишь логику на исключениях. Скажи, разве отсутствие данных в базе это исключительная ситуация?
Если вы утверждаете, дай мне сущность вот точно с таким ID это равносильно запросить страницу по конкретному урлу, это не поиск это четкое утверждение что я зная что есть такая сущность и дай мне её
источник

A

Andre in BY Microsoft .NET User Group
Это если у тебя рестовый круд
источник

A

Andre in BY Microsoft .NET User Group
А так, не факт что отсутствие чего-то в бд, обязательно 404
источник

RR

Roman Roman in BY Microsoft .NET User Group
этот способ позволяет обходится без пробрасывания тонны говна вверх по стэку вызовов, не засорять контроллер
источник

A

Anatoly in BY Microsoft .NET User Group
это начинает хуже работать в условиях графкуэля, но по большей части норм
источник

RR

Roman Roman in BY Microsoft .NET User Group
Andre
А так, не факт что отсутствие чего-то в бд, обязательно 404
еще рас, все зависит от того какую операции вы требуете выполнить, поиск, или конкретное утверждение
источник