Re[18]: Про обработку ошибок - типовые решения
От: Shmj Ниоткуда  
Дата: 28.04.25 07:40
Оценка: :))
Здравствуйте, Быдлокодер, Вы писали:

Б>Как правило в больших приложениях используются собственные объекты HttpRequest (например, в виде обверток над стандартными или в виде "перехватчиков"). При отправке запроса всё равно передается сессионный токен, как уже писал Sinclair, вот в ответе и надо проверить, что токен, который использовался при отправке запроса всё еще равен текущему токену — обрывать ничего не надо, достаточно игнорировать ответ или не делать саму отправку, если у вас внутренняя очередь. Или же сравнить UserID (в зависимости, что надежнее, если токены могут обновляться периодически).

Б>Ключевая идея, что это как правило делается в одном месте прозрачно, а не разбросано по всему клиентскому коду.

OperationCanceledException в среде .net. Это то, о чем я писал в самом начале.

Б>Кстати, и даже этого не придется делать скорее всего, т.к. при смене пользователя у тебя уничтожатся все экраны, обнулится весь state (если он был), поэтому асинхронные ответы ничего не смогут обновить, потому что там null условно говоря. Экран и стейт под нового пользователя будет создан заново, ссылки будут отличаться, поэтому как правило (если пишешь каноническое Web-приложение на популярном фреймворке) не надо беспокоиться, что из асинхронной функции у тебя обновится экран или стейт старыми данными.


Речь про дектопные/моб. приложения. В сетевых проще — там один запрос 1 ответ.

А в десктопных нередко состояние регают в IoC-фреймворке и для многих глобальных форм оно существует на протяжении всей жизни приложения.

Б>И про это тоже Sinclair в начале ветки писал.

Б>В целом ваша дискуссия похожа на разговор опытного архитектора с начинающим программистом. Лучше сосредоточиться на том, чтобы подумать, как реализовать то, о чем говорит опытный архитектор, вместо того, чтобы загружать его вопросами кодирования, как написать асинхронный обработчик.

В конце до него наконец дошла идея, которую он не мог понять — что за исключение такое, которое не нужно обрабатывать. Ему привычнее .Net — у меня то стек технологий огромный и я как бы вижу самую суть. Но для него нужно назвать ключевое слово OperationCanceledException.
=сначала спроси у GPT=
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.